首页 > 解决方案 > 如何获得授予 Android 上已安装应用程序的权限?

问题描述

我正在使用下面的代码来遍历请求的权限列表并检查是否授予了权限。但是,这不适用于所有已安装的应用程序。

final PackageManager pm = getPackageManager();
List<String> granted = new ArrayList<String>();
 
// Loop each package requesting <manifest> permissions
for (final PackageInfo pi : pm.getInstalledPackages(GET_PERMISSIONS)) {
        final String[] requestedPermissions = pi.requestedPermissions;
        if (requestedPermissions == null) {
            // No permissions defined in <manifest>
            continue;
        }
        // Loop each <uses-permission> tag to retrieve the permission flag
        for (int i = 0, len = requestedPermissions.length; i < len; i++) {
              try {
                  if ((pi.requestedPermissionsFlags[i] & 
                  PackageInfo.REQUESTED_PERMISSION_GRANTED) != 0) {
                  granted.add(pi.requestedPermissions[i]);
              } 
              catch (Exception e) {
              }
        }
}

我已经在 stackoverflow 上查看了以下线程,但它们也没有明确的答案。

是否可以检查另一个应用程序是否已获得 Android 6.0+ 的权限?

如何获得应用程序的所有授予权限

有人可以帮忙吗?

标签: androidandroid-permissionsandroid-package-managers

解决方案


推荐阅读