从权限名称Android查找权限组名称

Sur*_*hna 0 permissions android android-studio

我需要从权限名称中找到权限组名称,如联系人、存储等。我有以下代码

public ArrayList<String> permissionGroup(ArrayList<String> permission) {
    ArrayList<String>groupPermission = new ArrayList<>();
    PackageManager pm = getPackageManager();
    for(String entry : permission){
        PermissionGroupInfo info = null;
            try {
                info =pm.getPermissionGroupInfo(entry,0);
            } catch (PackageManager.NameNotFoundException e) {
                Log.w("infoerror ", e.getStackTrace().toString());
            }
                if(info == null){
                    Log.w("infonull","error");
                }
                else {
                    String loadLabelVal = info.loadLabel(pm).toString();
                    Log.w("groupName ", loadLabelVal);
                    if (!groupPermission.contains(loadLabelVal)) {
                        groupPermission.add(loadLabelVal);
                    }
                }
    }
    return groupPermission;
}
Run Code Online (Sandbox Code Playgroud)

这里 te 函数的输入是一个权限数组列表,需要找到相应的组。我将 pm.getPermissionGroupInfo(entry,0) 设为 null。我不知道是什么错误。请纠正我。

提前致谢。

小智 5

要获取“简称”,例如“位置”,您可以使用

PackageManager packageManager = getApplicationContext().getPackageManager();
PermissionInfo permissionInfo = packageManager.getPermissionInfo(Manifest.permission.ACCESS_FINE_LOCATION, 0);
PermissionGroupInfo permissionGroupInfo = packageManager.getPermissionGroupInfo(permissionInfo.group, 0);
Log.w("11_APP", ""+permissionGroupInfo.loadLabel(packageManager));
Run Code Online (Sandbox Code Playgroud)