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