我正在遵循以下链接中给出的代码:
http://xjaphx.wordpress.com/2011/06/12/create-application-launcher-as-a-list/
列出我手机上已安装的应用程序。
但这里的问题是它列出了所有应用程序。
所有系统相关的应用程序也喜欢。
网络位置、Google play 声音搜索、启动器、包访问助手
如何过滤不显示不可启动的应用程序?
我尝试了以下方法:
而不是这个
c.getPackageManager().getInstalledApplications(PackageManager.GET_META_DATA)
我试过了:
c.getPackageManager().getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES)
但同样的结果。
有人可以帮我解决这个问题吗?
谢谢!
更新:
感谢MH指导。现在我只能从 Playstore 看到已安装的应用程序。如何获取系统默认应用程序,如 Gmail、时钟、设置、谷歌地图等。
这是我尝试过的:
List<ApplicationInfo> appInfos = c.getPackageManager().getInstalledApplications(PackageManager.GET_META_DATA);
List<ApplicationInfo> userAppInfos = new ArrayList<ApplicationInfo>();
List<ApplicationInfo> systemAppInfos = new ArrayList<ApplicationInfo>();
for (ApplicationInfo info : appInfos)
{
if ((info.flags & ApplicationInfo.FLAG_SYSTEM) != 0)
{
systemAppInfos.add(info);
}
else
{
userAppInfos.add(info);
}
}
return userAppInfos;