我想获得所有出现在菜单屏幕上的应用程序。但是,现在我只获取用户安装的应用程序或所有应用程序(包括系统应用程序)。如何在Android中获取已安装的应用程序并且没有系统应用程序?
我当前的代码是:
final PackageManager pm = getActivity().getPackageManager();
List<PackageInfo> apps = pm.getInstalledPackages(PackageManager.GET_META_DATA);
ArrayList<PackageInfo> aux = new ArrayList<PackageInfo>();
for (int i = 0; i < apps.size(); i++) {
if (apps.get(i).versionName != null && ((apps.get(i).applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 1)) {
aux.add(apps.get(i));
}
有了这个代码,我可以让用户安装的应用程序,如果我评论的“如果”的指令,我会得到系统应用。
所以,我想获得用户安装的应用程序和应用程序,如联系人,图库等。
UPDATE:
final PackageManager pm = getActivity().getPackageManager();
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> apps = pm.queryIntentActivities(intent, PackageManager.GET_META_DATA);
但接触是系统的应用程序?请解释一下差异。你想要什么样的应用程序列表? – Blundell
我想要列出所有出现在菜单屏幕中的应用程序。 – beni
但联系人出现在菜单屏幕中?即系统应用程序。也许另一个问题会有帮助。什么特定的应用程序*不*你想要的? – Blundell