AllJoyn+Android+C++开发案例-android和windows跨设备跨平台调用方法

9 篇文章 1 订阅
9 篇文章 0 订阅
AllJoyn+Android+C++开发案例-android和windows跨设备跨平台调用方法
         前面两个博客分别介绍了android的跨设备方法调用,windows的跨设备调用,这篇文章我们尝试着试下window和android设备间的跨平台方法调用。
         我们让android端(JAVA)去跑service,让windows端(C++)跑client,client调用service的一个方法。
         android端的代码和http://blog.csdn.net/jsjdtb356/article/details/51179564博客中是相同的,我们重点看一下总线接口定义和接口实现。如下:
         总线接口:
package com.example.siemens.testgetmethod;

import org.alljoyn.bus.BusException;
import org.alljoyn.bus.annotation.BusInterface;
import org.alljoyn.bus.annotation.BusMethod;


@BusInterface (name = "org.my.interface.name")
public interface MyInterface {
//    @BusMethod
//    void show(String test) throws BusException;
//    @BusMethod
//    int add(int a,int b) throws BusException;
    @BusMethod
    String cat(String a,String b) throws BusException;
}
                声明cat方法,传入两个String,传出一个String。
   总线对象类实现总线接口:
    class MyBusObject implements MyInterface,BusObject{
//        public void show(String args){
//            Toast.makeText(getApplicationContext(),args,Toast.LENGTH_SHORT).show();     //会调用的远程方法
//
//        }
//
//        public int add(int a,int b){                        //会调用的远程方法
//            return a+b;
//        }
        public String cat(String a,String b){
            a=a.replace('H','T');
            b=b.replace('W','B');
            return a+b;
        }
    }
    cat方法实现,替换第一个传入参数的H为T,替换第二个传入参数的W为B,返回拼接的字符串。
    运行截图:


        下面再来看看client的实现,client的代码试下和http://blog.csdn.net/jsjdtb356/article/details/51159752博客中完全一致,四个要与service一致的地方不要忘记改。对应着Java源码去改。
/*constants*/
static const char* INTERFACE_NAME = "org.my.interface.name";	//org.alljoyn.Bus.sample
static const char* SERVICE_NAME = "com.test.well.known.name";	//org.alljoyn.Bus.sample
static const char* SERVICE_PATH = "/myBusObject";	// /sample
static const SessionPort SERVICE_PORT = 42;	//25
        看看运行效果:

        注意methodcall传入的两个参数分别是Hello和
World,这时已经处理成了Tello Borld,说明这时已经实现了,跨设备和跨平台的方法调用。
         一直忘记掉说很重要的一点,client和service要连接到同一局域网中。至此已经实现了跨平台的方法调用,后面可以根据需求,改进调用的方法,将alljoyn嵌入到实际项目中去。
         
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值