现在有三个软件,其中一个软件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**