Android target21及以上 AIDL 跨应用bindService失败的解决

同项目app中在target20及以下bindServie无问题,在target21及以上会出现无法绑定的问题!
解决方法及代码:
在确保服务端的AndroidManifest.xml配置和客户端的package以及action对应的情况下。

服务端 包名为"com.test.server"

        <service android:name=".MyService"
              android:enabled="true"
              android:exported="true"
              android:process=":remote">
              <intent-filter >
                  <action android:name=".myservice"></action>
                  <category android:name="android.intent.category.DEFAULT" />
              </intent-filter>
        </service>

客户端

		Intent intent =new Intent()
        intent.setAction(".myservice")
		intent.setComponent("com.test.server", "com.test.server.MyService"));
 		this.context.bindService(intent, this.serviceConn, Context.BIND_AUTO_CREATE);

在客户端的manifest中添加

    <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"
        tools:ignore="QueryAllPackagesPermission" />
    <queries>
        <package android:name="com.test.server" /> //服务端的包名
    </queries>

这样设置后基本没任何问题.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值