How to get App's Permission for each app? how to do it programmatically on Android?

Use the following code in your activity:

I created StringBuffer appNameAndPermissions = new StringBuffer(); to append all the apps and permisssions info.

It's working fine. I tested it already. If you have any issues, please let me know.

StringBuffer appNameAndPermissions = new StringBuffer();
PackageManager pm = getPackageManager();
List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);

for (ApplicationInfo applicationInfo : packages) {
    Log.d("test", "App: " + applicationInfo.name + " Package: " + applicationInfo.packageName);
try {
    PackageInfo packageInfo = pm.getPackageInfo(applicationInfo.packageName, PackageManager.GET_PERMISSIONS);
    appNameAndPermissions.append(packageInfo.packageName+"*******:\n");

    //Get Permissions
    String[] requestedPermissions = packageInfo.requestedPermissions;
    if(requestedPermissions != null) {
        for (int i = 0; i < requestedPermissions.length; i++) {
            Log.d("test", requestedPermissions[i]);
            appNameAndPermissions.append(requestedPermissions[i]+"\n");
        }
    appNameAndPermissions.append("\n");
} catch (NameNotFoundException e) {
    e.printStackTrace();
}

Use the following permission in your AndroidManifest.xml file:

<uses-permission android:name="android.permission.GET_TASKS"/>


You need to use PackageManager's GET_PERMISSIONS flag.

Check this question.

Tags:

Android