检索Android Manifest中声明的所有权限

时间:2016-07-16 02:21:23

标签: android android-permissions

我正在尝试使用以下代码检索在Manifest文件中声明的权限。

    try {
        PackageInfo pkgInfo = getPackageManager().getPackageInfo(
                mPkg,
                PackageManager.GET_PERMISSIONS
        );
        PermissionInfo[] permissions = pkgInfo.permissions;
        if (permissions == null) {
            source.setText("No declared permissions");
        } else {
            String permissionsText = "";
            for (int i = 0; i < permissions.length; i++) {
                permissionsText += permissions[i].name + "\n";
            }
            source.setText(permissionsText);
        }

    } catch (PackageManager.NameNotFoundException e) {
        source.setText("Package Not Found");
    }

但权限返回null。在应用程序中声明了一些权限。但它仍然返回NULL。

我正在Android 6.0上执行此代码

请帮助检索Android Manifest文件中声明的权限。

1 个答案:

答案 0 :(得分:0)

将您的pkgInfo.permissions更改为pkgInfo.requestedPermissions。

    try {
        PackageInfo pkgInfo = getPackageManager().getPackageInfo(mPkg, PackageManager.GET_PERMISSIONS);
        String[] requestedPermissions = pkgInfo.requestedPermissions;

        if (requestedPermissions == null) {
            source.setText("No declared permissions");
        } else {
            String permissionsText = "";
            for (int i = 0; i < pkgInfo.requestedPermissions.length; i++) {
                permissionsText += requestedPermissions[i] + "\n";
            }
            source.setText(permissionsText);
        }

    } catch (PackageManager.NameNotFoundException e) {
        source.setText("Package Not Found");
    }
相关问题