2016-03-15 40 views

回答

5

您可以使用代碼(從here)來獲得設備上安裝應用程序的權限列表中的應用程序的列表的方法。然後搜索關於位置服務所需的權限,如ACCESS_FINE_LOCATION。 您的代碼將是這樣的:

PackageManager pm = getPackageManager(); 
List packages = pm.getInstalledApplications(PackageManager.GET_META_DATA); 
for (ApplicationInfo applicationInfo : packages) { 
    Log.d("test", "App: " + applicationInfo.name + " Package: " + applicationInfo.packageName); 
    try { 
     PackageInfo packageInfo = pm.getPackageInfo(applicationInfo.packageName, PackageManager.GET_PERMISSIONS); 
     //Get Permissions 
     String[] requestedPermissions = packageInfo.requestedPermissions; 
     if(requestedPermissions != null) { 
      for (int i = 0; i < requestedPermissions.length; i++) { 
       Log.d("test", requestedPermissions[i]); 

       ////////////////////////////////////// 
       ////////////////////////////////////// 
       // Look for the desired permission here 
       ////////////////////////////////////// 
       ////////////////////////////////////// 
      } 
     } 
    } catch (NameNotFoundException e) { 
     e.printStackTrace(); 
    } 
} 

而要做到這一點,你需要在你的清單如下:

<uses-permission android:name="android.permission.GET_TASKS"/> 
+0

這真是太棒了。是否也可以找出授予特定權限的應用程序列表? – Mrunal

+0

@Mrunal這是我相信上述代碼正在做的事情。您有應用程序及其權限列表,因此您可以根據需要進行過濾。 你可以將答案標記爲接受我猜。 – EmJiHash

相關問題