3

我使用以下代码获得了已安装应用程序的列表:

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 列表的代码。

4

2 回答 2

9

您是否尝试过:

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

(在这里找到)

于 2013-01-24T21:28:20.617 回答
4

你的问题不太合理;你提出了一个不合理的要求。你说你想要一个所有已安装应用程序的列表,但你还想要一个List对象ResolveInfo。的文档ResolveInfo将其描述为:

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

应用程序和IntentFilters 不是一一关联的。您希望ResolveInfo对象包含什么?如果一个包裹不止一个,你想要哪一个?

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

于 2013-01-24T21:25:06.440 回答