如何获取在Android中使用gps的已安装应用程序列表?
问题描述:
我有这样的代码,返回所有已安装的设备的应用程序的列表:如何获取在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服务的应用程序,因为据我了解,如果我可以过滤这些应用程序正在采取的权限,然后我可以解决它,但不知道如何做到这一点。
答
使用可以使用下面的代码片段:::
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));
}
}
拨通了该代码的任何想法? – 2012-04-22 07:54:13
我不知道我应该在哪里使用我的代码 – Reyjohn 2012-04-22 07:55:43
你能帮我吗? – Reyjohn 2012-04-22 08:02:21