2016-07-28 120 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));