我正在创建一个方法来显示android中已安装的应用程序。我给出了以下代码行来获取应用程序列表
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.INTERNET, pk.packageName)) //checking if the package is having INTERNET permission
{
//some processing
}
}
}
这里一切正常,但列表也包括系统包。我只需要获取用户安装的软件包列表。有什么办法吗?
我们应该在getInstalledPackages()中设置什么标志来获取用户安装的包?
答案 0 :(得分:3)
如果ApplicationInfo
对象安装在固件上,它将具有FLAG_SYSTEM
,因此您可以使用它来过滤掉它们。