Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了当客户端安装主机后,android aidl无法绑定到服务大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个aidl服务正常工作,直到安装客户端之前安装主机,但正如我在标题中提到的那样,当主机没有安装时我安装了客户端,之后我安装了主机我得到了一个SecurityException在bindservice()上

Intent serviceIntent = new Intent(Aidlservice.class.getName());
if (!mContext.getPackageManager().queryIntentservices(serviceIntent,0).isEmpty()) {
    mContext.bindservice(serviceIntent,mserviceConn,Context.bIND_AUTO_create);
}

Caused by: java.lang.SecurityException: Not allowed to bind to servicE intent { act=com.mypackage.AidlservicE}

我还测试了一些使用aidl的应用程序,他们遇到了同样的问题!

updatE

发现问题是经许可的,
由于我的服务使用自定义权限,当客户端在主机之前安装它无法理解权限时,所以当我安装主机并尝试绑定到它时,android无法使用该权限,因此它会引发安全性异常!

android:permission="com.mypackage.Aidlservice.bIND"

<permission android:name="com.mypackage.Aidlservice.bIND"
            android:label="@String/perName"
            android:description="@String/perDesc"
            android:protectionLevel="normal" />

有什么想法来解决这个问题吗?

解决方法

根据 Android Custom Permission Fails Based on App Install Order

你应该使用android:protectionLevel =“signature”而不是正常在权限标记

大佬总结

以上是大佬教程为你收集整理的当客户端安装主机后,android aidl无法绑定到服务全部内容,希望文章能够帮你解决当客户端安装主机后,android aidl无法绑定到服务所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。