gpt4 book ai didi

android aidl无法绑定(bind)到服务,当主机安装在客户端之后

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:48:21 25 4
gpt4 key购买 nike

我有一个 aidl 服务,在安装主机之前,它可以正常工作,直到安装了客户端,但是正如我在标题中提到的,当主机没有安装时,我安装了客户端,然后我安装了主机在 bindService()

上获取 SecurityException
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 的应用程序,它们也遇到了同样的问题!

更新

我发现问题出在权限上,因为我的服务在主机之前安装客户端时使用自定义权限,所以它无法理解该权限,所以当我安装主机并尝试绑定(bind)到它时,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无法绑定(bind)到服务,当主机安装在客户端之后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22934416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com