public static List<String> getAllPermissionsName(Context context) {
List<String> permissionList = new ArrayList<>();
try {
PackageManager packageManager = context.getPackageManager();
PackageInfo packageInfo = packageManager.getPackageInfo(BuildConfig.APPLICATION_ID, PackageManager.GET_PERMISSIONS);
String[] usesPermissionsArray = packageInfo.requestedPermissions;
for (int i = 0; i < usesPermissionsArray.length; i++) {
String usesPermissionName = usesPermissionsArray[i];
PermissionInfo permissionInfo = packageManager.getPermissionInfo(usesPermissionName, 0);
permissionList.add(context.getString(permissionInfo.labelRes));
}
} catch (Exception e) {
if (BuildConfig.isLogDebug) {
e.printStackTrace();
}
}
return permissionList;
}
public static List<String> getPermissionsName(Context context, List<String> permissions) {
List<String> permissionList = new ArrayList<>();
try {
PackageManager packageManager = context.getPackageManager();
for (int i = 0; i < permissions.size(); i++) {
String usesPermissionName = permissions.get(i);
PermissionInfo permissionInfo = packageManager.getPermissionInfo(usesPermissionName, 0);
permissionList.add(context.getString(permissionInfo.labelRes));
}
} catch (Exception e) {
if (BuildConfig.isLogDebug) {
e.printStackTrace();
}
}
return permissionList;
}
public static String getPermissionNameString(Context context, String permission) {
String res = "";
try {
PackageManager packageManager = context.getPackageManager();
PermissionInfo permissionInfo = packageManager.getPermissionInfo(permission, 0);
res = context.getString(permissionInfo.labelRes);
} catch (Exception e) {
if (BuildConfig.isLogDebug) {
e.printStackTrace();
}
}
return res;
}