SDK应用中的重复权限

时间:2016-05-06 11:24:36

标签: android

我有一个在多个应用中使用的SDK /库。我希望能够从SDK发送安全广播到实现它的应用程序,所以我要经许可保护我的广播。我的SDK定义了权限:

<permission android:name="my.sdk.permission.BROADCAST"
    android:label="my_sdk_permission"
    android:protectionLevel="signature"/>
<uses-permission android:name="my.sdk.permission.BROADCAST"/>

应用清单有:

<receiver android:name="my.receiver.MyReceiver"
            android:permission="my.sdk.permission.BROADCAST"
            android:protectionLevel="signature"
            android:exported="false">
            <intent-filter>
                <action android:name="my.receiver.ACTION" />
            </intent-filter>
        </receiver>

但是,通过此设置,我有时会在使用sdk安装多个应用时遇到错误:

  

INSTALL_FAILED_DUPLICATE_PERMISSION perm = my.sdk.permission.BROADCAST   PKG = my.otherapp

我认为我需要做的是在构建时确保权限设置为实现SDK的应用程序的包,但我不确定

1 个答案:

答案 0 :(得分:1)

在Android 5.0及以上版本中,2个以上应用可以使用相同名称的<permission>元素的唯一方法是使用相同的签名密钥对应用进行签名。

在您的情况下,只需删除所有权限。接收器不会导出,因此许可永远不会发挥作用。您可能还会考虑删除<intent-filter>,因为非导出组件不需要这样做。只是我们一个明确的Intent