2012-04-22 126 views
1

我有這樣的代碼,返回所有已安裝的設備的應用程序的列表:如何獲取在Android中使用gps的已安裝應用程序列表?

PackageManager pm = this.getPackageManager(); 

Intent intent = new Intent(Intent.ACTION_MAIN, null); 
intent.addCategory(Intent.CATEGORY_LAUNCHER); 

List<ResolveInfo> list =pm.queryIntentActivities(intent,PackageManager.PERMISSION_GRANTED); 
     for (ResolveInfo rInfo : list) { 
      results.add(rInfo.activityInfo.applicationInfo.loadLabel(pm) 
        .toString()); 
      Log.w("Installed Applications", rInfo.activityInfo.applicationInfo 
        .loadLabel(pm).toString()); 
     } 

但現在我想只有我的列表中,它使用GPS服務的應用程序,因爲據我瞭解,如果我可以過濾這些應用程序正在採取的權限,然後我可以解決它,但不知道如何做到這一點。

回答

3

使用可以使用下面的代碼片段:::

PackageManager packageManager=this.getPackageManager(); 
List<PackageInfo> applist=packageManager.getInstalledPackages(0); 
Iterator<PackageInfo> it=applist.iterator(); 
while(it.hasNext()){ 
PackageInfo pk=(PackageInfo)it.next(); 
if(PackageManager.PERMISSION_GRANTED==packageManager.checkPermission(Manifest.permission.ACCESS_FINE_LOCATION, pk.packageName)) //checking if the package is having INTERNET permission 
{ 
results.add(""+pk.applicationInfo.loadLabel(packageManager)); 
} 
} 
+0

撥通了該代碼的任何想法? – 2012-04-22 07:54:13

+0

我不知道我應該在哪裏使用我的代碼 – Reyjohn 2012-04-22 07:55:43

+0

你能幫我嗎? – Reyjohn 2012-04-22 08:02:21

相關問題