众所周知,Android的权限声明都是放在AndroidManifest.xml里面的
uses-permission字段里 形如
<uses-permission android:name="WRITE_EXTERNAL_STORAGE"/>
如果要获取这个标签中的内容
我们需要用先获取所有应用信息,然后过滤出第三方应用,最后输出第三方应用:
@Override
<span style="white-space:pre"> </span>protected void onCreate(Bundle savedInstanceState) {
<span style="white-space:pre"> </span>super.onCreate(savedInstanceState);
<span style="white-space:pre"> </span>setContentView(R.layout.activity_main);
<span style="white-space:pre"> </span>text = (TextView)findViewById(R.id.text);
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>ArrayList<AppInfo> appInfoList = new ArrayList<AppInfo>();
<span style="white-space:pre"> </span>//获取所有应用
<span style="white-space:pre"> </span>List<PackageInfo> packageInfoList = getPackageManager().getInstalledPackages(0);
<span style="white-space:pre"> </span>for(int i = 0; i < packageInfoList.size() ; i++){
<span style="white-space:pre"> </span>PackageInfo packageInfo = packageInfoList.get(i);
<span style="white-space:pre"> </span>AppInfo tempInfo = new AppInfo();
<span style="white-space:pre"> </span>tempInfo.appName = packageInfo.packageName;
<span style="white-space:pre"> </span>appInfoList.add(tempInfo);
<span style="white-space:pre"> </span>Log.d("app", packageInfo.packageName);
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>//***第三方应用信息***
<span style="white-space:pre"> </span>if((packageInfo.applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM)==0){
<span style="white-space:pre"> </span>try {
<span style="white-space:pre"> </span>//获取第三方应用的信息
<span style="white-space:pre"> </span>PackageInfo packageInfo2 = getPackageManager().getPackageInfo(packageInfo.packageName, PackageManager.GET_PERMISSIONS);
<span style="white-space:pre"> </span>//如果权限数组非空则输出
<span style="white-space:pre"> </span>if(packageInfo2.requestedPermissions != null){
<span style="white-space:pre"> </span>System.out.println(packageInfo.packageName + "---"+packageInfo2.requestedPermissions[0]);
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>} catch (NameNotFoundException e) {
<span style="white-space:pre"> </span>// TODO Auto-generated catch block
<span style="white-space:pre"> </span>e.printStackTrace();
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>//end
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>}