Mainactivity is as follows:
Package cc.testusespermission;
Import android.app.Activity;
Import Android.content.pm.PackageInfo;
Import Android.content.pm.PackageManager;
Import Android.content.pm.PermissionGroupInfo;
Import Android.content.pm.PermissionInfo;
Import Android.os.Bundle;
/**
* Demo Description:
* View the required permissions for Android applications (uses-permission)
*
Resources
* 1 http://blog.csdn.net/bage1988320/article/details/6740292
* 2 http://blog.csdn.net/hjd_love_zzt/article/details/12238301
* Thank you very much
*
* Note notes:
* The code comment in the demo is to Android.permission.INTERNET permissions
* For example, the attributes are described in detail
*
*/
public class Mainactivity extends activity {
@Override
protected void OnCreate (Bundle savedinstancestate) {
Super.oncreate (savedinstancestate);
Setcontentview (R.layout.main);
Getusespermission ("Cc.testusespermission");
}
private void Getusespermission (String packagename) {
try {
Packagemanager Packagemanager=this.getpackagemanager ();
PackageInfo Packageinfo=packagemanager.getpackageinfo (PackageName, packagemanager.get_permissions);
String [] usespermissionsarray=packageinfo.requestedpermissions;
for (int i = 0; i < usespermissionsarray.length; i++) {
Get the name of each permission, such as: Android.permission.INTERNET
String Usespermissionname=usespermissionsarray[i];
System.out.println ("usespermissionname=" +usespermissionname);
Get the details of this permission through Usespermissionname
Permissioninfo permissioninfo=packagemanager.getpermissioninfo (usespermissionname, 0);
Obtain which permission group this permission belongs to, such as: network traffic
Permissiongroupinfo permissiongroupinfo = packagemanager.getpermissiongroupinfo (permissionInfo.group, 0);
System.out.println ("permissiongroup=" + Permissiongroupinfo.loadlabel (Packagemanager). toString ());
Gets the label information for the permission, for example: Full network access
String Permissionlabel=permissioninfo.loadlabel (Packagemanager). toString ();
System.out.println ("permissionlabel=" +permissionlabel);
Gets a detailed description of the permission, such as: Allow the application to create a network socket and use a custom network protocol
Browsers and other applications provide a way to send data to the Internet, so applications can send data to the Internet without this permission.
String permissiondescription=permissioninfo.loaddescription (Packagemanager). toString ();
System.out.println ("permissiondescription=" +permissiondescription);
System.out.println ("===========================================");
}
catch (Exception e) {
Todo:handle exception
}
}
}
Main.xml is as follows:
<relativelayout xmlns:android= "http://schemas.android.com/apk/res/android"
xmlns:tools= "http:// Schemas.android.com/tools "
android:layout_width=" match_parent "
android:layout_height=" Match_parent "
>
<textview
android:layout_width= "wrap_content"
android:layout_height= "Wrap_content"
android:text= "View the required permissions for Android applications (uses-permission)"
android:layout_centerinparent= "true"
/>
</RelativeLayout>