Android 编程下如何获取有 Internet 访问权限的应用


应用程序在运行过程中所需要的权限是被写在应用的 AndroidManifest.xml 下的,在 Android 中这些信息是被封装在 PackageInfo 中的,所以要获取权限的信息,我们就需要先获取到 PackageManager ,再通过 PackageManager  获取指定条件的 PackageInfo  信息,通过比对 PackageInfo 所携带的权限信息来判断对应的应用是否具有 Internet 的权限,判断应用是否具有其他权限同理。实现代码如下:

public void getInternetAppInfos() {

   /************************ 获取包管理器 *************************/
   PackageManager manager = getPackageManager();

   /** 获取未被卸载同时在清单文件中设置了 <uses-permission> 的包信息 **/
   List<PackageInfo> packageInfos = manager.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES | PackageManager.GET_PERMISSIONS);

   /****** 遍历获取包信息及包信息中包含的 <uses-permission> 信息 *****/
   for (PackageInfo info : packageInfos) {
       String[] permissions = info.requestedPermissions;
       if (permissions != null) {
           for (String permission : permissions) {
               if (permission.equals(Manifest.permission.INTERNET)) {
                   ApplicationInfo appInfo = info.applicationInfo;
                   String appname = appInfo.loadLabel(manager).toString();
                   String packageName = appInfo.packageName;
                   int uid = appInfo.uid;
                   System.out.println(appname + ":" + packageName + ":" + uid);
               }
           }
       }
   }
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM