Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Programmatically retrieve permissions from manifest.xml in android

Tags:

I have to programmatically retrieve permissions from the manifest.xml of an android application and I don't know how to do it.

I read the post here but I am not entirely satisfied by the answers. I guess there should be a class in the android API which would allow to retrieve information from the manifest.

Thank you.

like image 901
Alexis Le Compte Avatar asked Aug 14 '13 16:08

Alexis Le Compte


People also ask

How do I get permission off Android manifest file?

The simple way to remove this type of permission, is by deleting its xml code line from the original Android Manifest file in android/app/src/main .

How do I access manifest xml?

Just open your APK and in treeview select "AndroidManifest. xml". It will be readable just like that.

How do I request runtime permission on Android?

checkSelfPermission(String perm); It returns an integer value of PERMISSION_GRANTED or PERMISSION_DENIED. Note: If a user declines a permission that is critical in the app, then shouldShowRequestPermissionRationale(String permission); is used to describe the user the need for the permission.

How check permission is granted or not Android?

To check if the user has already granted your app a particular permission, pass that permission into the ContextCompat. checkSelfPermission() method. This method returns either PERMISSION_GRANTED or PERMISSION_DENIED , depending on whether your app has the permission.


1 Answers

You can get an application's requested permissions (they may not be granted) using PackageManager:

PackageInfo info = getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_PERMISSIONS); String[] permissions = info.requestedPermissions;//This array contains the requested permissions. 

I have used this in a utility method to check if the expected permission is declared:

//for example, permission can be "android.permission.WRITE_EXTERNAL_STORAGE" public boolean hasPermission(String permission)  {     try {         PackageInfo info = getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_PERMISSIONS);         if (info.requestedPermissions != null) {             for (String p : info.requestedPermissions) {                 if (p.equals(permission)) {                     return true;                 }             }         }     } catch (Exception e) {         e.printStackTrace();     }     return false; } 
like image 141
Phil Avatar answered Oct 13 '22 01:10

Phil