Android获取程序详细权限信息

我们大家平时打开android程序管理的选项,可以看到一个程序的权限列表,内容详细。如下图所示:

 

                                                      

 

我就想自习写程序得到一个程序的权限列表。

由于系统程序里实现了这个功能,系统源码肯定有这段代码。经过上网搜索,找到实现这个功能的方面类AppSecurityPermissions,大家可以在源码里找到这个java文件。我用两种方法实现了该功能。

 

方法一. 精简AppSecurityPermissions代码,实现了功能。

[java] view plaincopy
  1. private void getPermisson(Context context) {  
  2.         try {  
  3.             PackageManager pm = context.getPackageManager();  
  4.             PackageInfo pi = pm.getPackageInfo(context.getPackageName(), 0);  
  5.             // 得到自己的包名  
  6.             String pkgName = pi.packageName;  
  7.   
  8.             PackageInfo pkgInfo = pm.getPackageInfo(pkgName,  
  9.                     PackageManager.GET_PERMISSIONS);//通过包名,返回包信息  
  10.             String sharedPkgList[] = pkgInfo.requestedPermissions;//得到权限列表  
  11.   
  12.             for (int i = 0; i < sharedPkgList.length; i++) {  
  13.                 String permName = sharedPkgList[i];  
  14.   
  15.                 PermissionInfo tmpPermInfo = pm.getPermissionInfo(permName, 0);//通过permName得到该权限的详细信息  
  16.                 PermissionGroupInfo pgi = pm.getPermissionGroupInfo(  
  17.                         tmpPermInfo.group, 0);//权限分为不同的群组,通过权限名,我们得到该权限属于什么类型的权限。  
  18.                   
  19.                 tv.append(i + "-" + permName + "\n");  
  20.                 tv.append(i + "-" + pgi.loadLabel(pm).toString() + "\n");  
  21.                 tv.append(i + "-" + tmpPermInfo.loadLabel(pm).toString()+ "\n");  
  22.                 tv.append(i + "-" + tmpPermInfo.loadDescription(pm).toString()+ "\n");  
  23.                 tv.append(mDivider + "\n");  
  24.   
  25.             }  
  26.         } catch (NameNotFoundException e) {  
  27.             Log.e("##ddd""Could'nt retrieve permissions for package");  
  28.   
  29.         }  
  30.     }  


主要通过PackageManager得到该程序的权限列表,然后通过权限的名字得到该权限的PermissionInfo。得到详细信息。得到结果如下图所示:

 

                                                

 

方法二。 直接用AppSecurityPermissions类,经过导入资源文件,实现了功能。具体代码我下面直接把工程打包。大家可以直接看里面的代码。下面只把效果图展示出来,如下图所示:

 

我比较喜欢第一种,得到你想要的信息,界面你可以根据自己的想法来设计,并且代码量少。

 程序下载地址:http://download.csdn.net/source/3567257

原文地址:点击打开链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值