Android M:你能以编程方式获得应用程序所需的全部权限吗?

时间:2016-01-15 11:23:21

标签: android permissions android-6.0-marshmallow

这与应用程序当前已被授予的内容相同 - 可能是它总共想要的部分。

This显示了如何获取当前授予的集合。在Android M之前,这是完整集,因为它不会被安装,除非用户已经授予了它想要的所有内容。但是,在Android M下,用户可以选择授予哪个,并在安装后随时更改。我喜欢应用程序所希望的完整集,如其中所列。

2 个答案:

答案 0 :(得分:1)

正如@CommonsWare评论的那样,PackageInfo.requestedPermissions包含<uses-permission>下包含的所有<manifest>标记的“数组,如果没有,则为null。”

我在运行Android M的设备上对此进行了测试,我获得的输出包括所有<uses-permission>标记的权限,无论这些权限是否已被授予,正如预期一样。

测试此内容的最小示例:

try {
    PackageInfo pi = getPackageManager().getPackageInfo("com.example.foo", PackageManager.GET_PERMISSIONS);
    for (String perm : pi.requestedPermissions) {
        Log.e("Foo", perm);
    }
} catch (Exception e) {
}

答案 1 :(得分:0)

adb shell dumpsys package packagename会为您提供应用packagename

所要求的权限信息