接上一篇:android aidl进程间通信封装通用实现-CSDN博客
该aar包的使用还是比较方便的
一先看客户端
1 初始化
JsonProtocolManager.getInstance().init(mContext, "com.autoaidl.jsonprotocol"); //客户端监听事件实现 JsonProtocolManager.getInstance().setJsonProtocolReceive(new IJsonReceive() { @Override public String received(String jsonParams, Bundle bundle) { LogUtils.d(TAG, "OnReceive --> jsonParams:" + jsonParams); return JsonSdkController.getInstance().onReceive(jsonParams); } });
2 发送事件:
就是通过json的形式将参数包裹进来,另一端统一解析
唯一标志位:KEY_CLIENT_REQUEST_AUTHOR 是必须要加的,不然区分不出来是那个客户端
JSONObject jsonObject = new JSONObject(); jsonObject.put("protocolId", ProtocolID.PROTOCOL_SEARCH); jsonObject.put("versionName", "v0.0.1"); JSONObject jsonData = new JSONObject(); jsonData.put("say","hello- which pid are you ?"); jsonObject.put("data", jsonData); jsonObject.put(SDKConstants.KEY_CLIENT_REQUEST_AUTHOR, "yangtestt"); JsonProtocolManager.getInstance().request(jsonObject.toString(),null);
二再看服务端
1 初始化
JsonProtocolManager.getInstance().init(mContext, "com.autoaidl.jsonprotocol");
2 发送事件
JSONObject jsonObject = new JSONObject(); jsonObject.put("protocolId", ProtocolID.PROTOCOL_SEARCH); jsonObject.put("versionName", "v0.0.1"); JSONObject jsonData = new JSONObject(); jsonData.put("say","hello- which pid are you ?"); jsonObject.put("data", jsonData); //jsonObject.put(SDKConstants.KEY_CLIENT_REQUEST_AUTHOR, "yangtestt"); JsonProtocolManager.getInstance().request(jsonObject.toString(),null);
服务端和客户端相互发送比较类似,只是服务端不需要传唯一id值
也不需要监听回调
我项目里的demo更简单,直接将客户端和服务端的代码 放到一起公用了(代码虽然冗余,但能用),demo中的服务端和客户端唯一的区别就是gradle里面动态改了包名。
实际项目中可以直接将lib库编译成aar包集成进去,然后客户但android 11的版本需要
增加两部
1 增加权限
<queries> <package android:name="com.autoaidl.jsonprotocol" /> <intent> <action android:name="com.auto.aidl.AidlService" /> </intent> </queries>
2 init的时候要传入服务端的包名文章来源:https://www.toymoban.com/news/detail-829209.html
服务器端只需引入aar包就行了,init的时候包名也可以传空。文章来源地址https://www.toymoban.com/news/detail-829209.html
到了这里,关于android aidl进程间通信封装通用实现-用法说明的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!