2016-07-28 71 views
0

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

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; 
} 

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

在此先感谢。

回答

1

获得“短名称”例如“位置”您可以使用

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)); 
相关问题