2012-04-22 8 views
1

私は、デバイスのすべてのインストールされたアプリケーションのリストを返します。このコードがあります。アンドロイドで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

は、このコードを任意のアイデアを得ましたか。 –

+0

私は上のコードでこれをどこで使うべきかわかりません – Reyjohn

+0

私を助けてくれますか? – Reyjohn