liruo233 2019-06-04 10:34 采纳率: 50%
浏览 803
已结题

关于安卓的技术实现问题,同一个手机上两个软件之间的通信和相互调用

现在有三个软件,其中一个软件A是其他安卓设备上的,另外两个BC是手机软件,要实现的大体功能是手机和安卓外设wifi热点连接,软件B通过WIFI通信软件A,软件A根据收到的消息来控制安卓外设摄像的开启关闭,这是已经完成的功能。

要实现的功能是软件C有一个按钮,点击按钮,会给同一台手机上的软件B发通讯,软件B收到通讯后给软件A发socket消息,然后把操作结果(成功失败)返回给软件C,这一切都需要后台进行。

主要有下面几个问题:

1. 后台发送进程通信需要什么技术

2. 软件C是一个官方平台,他们要求的样例是是这样的

软件C请求数据样例

//查验终端调用三方测量软件的包名
String packageName = "com.company.*****.****";
Intent intent=new Intent("android.intent.action.VIEW");
intent.setComponent(new ComponentName(packageName, packageName+".RequestAction"));
n.putExtra("cylsh", "*************");
n.putExtra("keystr", "*************");
//启动带回调的窗体
//16是回调码
startActivityForResult(n, 16); 

软件B配置样例

<activity
    android:name="com.company.****.***.RequestAction"
            android:screenOrientation="portrait">
    <intent-filter>
    <action android:name="android.intent.action.VIEW" />
    </intent-filter>
</activity>

软件B返回数据样例

Intent resultIntent = new Intent();
resultIntent.putExtra("code",”1”);
resultIntent.putExtra("message", "消息描述");
resultIntent.putExtra("keystr", "**************");
resultIntent.putExtra("cylsh", "************");
resultIntent.putExtra("clsbdh", " LGBF1****2424");
resultIntent.putExtra("cwkc", "****");
resultIntent.putExtra("cwkk", "****");
//返回数据
setResult(Activity.RESULT_OK, resultIntent);
this.finish();

startActivityForResult(n, 16),软件C发送给软件B消息使用的是这个方法,我测试的结果是直接跳转到软件B的界面,能不能不修改软件C这行代码的前提下对软件B修改,**使其只接收消息,不跳转界面,**需要怎么做

3. 软件B怎么返回数据给软件C

4.

由于安卓技术刚学习,技术水平差,所以软件A和软件B之间的通信必须在软件B中开启热点,软件A中连接,这样才能通信,但软件C调用软件B时总会重新启动软件B,软件B和软件A又得重新链接热点,怎么才能**直接调用正在运行的软件B**

  • 写回答

2条回答 默认 最新

  • dabocaiqq 2019-06-04 11:46
    关注
    评论

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大