Programmatically retrieve permissions from manifest.xml in android

前端 未结 5 726
无人共我
无人共我 2020-12-05 18:39

I have to programmatically retrieve permissions from the manifest.xml of an android application and I don\'t know how to do it.

I read the post here but I am not ent

5条回答
  •  北荒
    北荒 (楼主)
    2020-12-05 19:14

    You can get an application's requested permissions (they may not be granted) using PackageManager:

    PackageInfo info = getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_PERMISSIONS);
    String[] permissions = info.requestedPermissions;//This array contains the requested permissions.
    

    I have used this in a utility method to check if the expected permission is declared:

    //for example, permission can be "android.permission.WRITE_EXTERNAL_STORAGE"
    public boolean hasPermission(String permission) 
    {
        try {
            PackageInfo info = getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_PERMISSIONS);
            if (info.requestedPermissions != null) {
                for (String p : info.requestedPermissions) {
                    if (p.equals(permission)) {
                        return true;
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }
    

提交回复
热议问题