Android获取所有已安装应用的列表

时间:2013-01-24 20:30:52

标签: android android-package-managers

我已使用以下代码获取已安装应用的列表:

public List<ResolveInfo>() {
    PackageManager pm=getPackageManager();
    Intent main=new Intent(Intent.ACTION_MAIN, null);

    main.addCategory(Intent.CATEGORY_LAUNCHER);

    List<ResolveInfo> launchables=pm.queryIntentActivities(main, 0);

}

只有一个问题:它仅列出具有MAIN活动的应用。 如何获取所有已安装应用的列表? 请注意,我在需要List为ResolveInfo的项目中使用此代码,因此请仅回答返回ResolveInfo列表的代码。

2 个答案:

答案 0 :(得分:9)

您是否尝试过:

 List<ApplicationInfo> packages = pm
            .getInstalledApplications(PackageManager.GET_META_DATA);

(找到here

答案 1 :(得分:4)

你的问题没有意义;你提出了一些不合理的要求。您说您想要所有已安装应用的列表,但您还需要ListResolveInfo个对象。 docs of ResolveInfo将其描述为:

  

解析针对IntentFilter的意图返回的信息。

应用和IntentFilter不会一对一关联。您希望ResolveInfo个对象包含什么?如果一个包有多个,你想要哪一个?

PackageManager确实包含方法getInstalledApplications,但它返回ListApplicationInfo个对象,这种类型的查询更合适。同样,还有一个getInstalledPackages方法可以返回ListPackageInfo个对象。

相关问题