是否可以在运行时为广播接收器设置android权限级别?

时间:2017-01-24 11:50:27

标签: android permissions runtime receiver android-api-levels

是否可以以编程方式在java中设置IntentFilter/Intent的保护级别,类似于我们在AndroidManifest.xml中定义它的方式:

<receiver
    android:name="my.test.receiver"
    android:protectionLevel="signature" />

我们的应用程序有一个核心库,可以在运行时促进动态广播和接收器,我们希望在这里使它们安全。

我在网上找不到有关此方法的信息,也不确定是否可行。如果我们可以设置一个intentFilters permission level = PermissionInfo.PROTECTION_SIGNATURE它会起作用,但是按照文档来看,PermissionInfo似乎只用于阅读。我能找到的唯一替代方法是声明一个特殊权限,通过我们的广播发送它并将其添加到我们的所有清单中:https://stackoverflow.com/a/15316487/1810256

我们可能会依赖这种方法,但我们更喜欢第一种方法,因为签名方法似乎更安全。

任何帮助/建议表示赞赏!

1 个答案:

答案 0 :(得分:-1)

引用其中一位用户(Naveed Ahmad): &#34;现在从Android 6.0 Marshmellow开始,你可以要求用户在运行时动态地允许权限,我发现它,看看这个链接。我希望它能帮助你理解。&#34;

https://inthecheesefactory.com/blog/things-you-need-to-know-about-android-m-permission-developer-edition/en

我在这里找到了它: get Android permission dynamiclly