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

Android获取所有已安装应用程序的列表,android,android-package-managers,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.quer

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

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);

}
公共列表(){
PackageManager pm=getPackageManager();
Intent main=新的Intent(Intent.ACTION_main,空);
main.addCategory(Intent.CATEGORY_启动器);
List launchables=pm.querytentActivities(main,0);
}
只有一个问题:它只列出有主要活动的应用程序。 如何获取所有已安装应用程序的列表?
请注意,我在一个需要列表为ResolveInfo的项目中使用了此代码,因此请只回答返回ResolveInfo列表的代码。

您的问题没有太大意义;你的要求有点不合理。你说你想要一个所有已安装应用程序的列表,但你也想要一个
对象的
列表
。报告将其描述为:

根据IntentFilter解析intent时返回的信息

应用程序和
IntentFilter
s之间没有相互关联。您希望
ResolveInfo
对象包含什么?如果一个包裹有多个,您想要哪一个

PackageManager
确实包含一个方法,但它返回
ApplicationInfo
对象的
列表,这是一种更适合此类查询的类型。同样,还有一种方法返回
PackageInfo
对象的
列表。

您是否尝试过:

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

List)

好吧,我没有投反对票,但首先,你想要的是不可能的。您无法以
ResolveInfo
对象的
list
形式获取已安装应用程序的列表。您可能被否决,因为您的最后一句话可能被解释为“给我代码”请求,而不是“请帮我处理现有代码”。我也没有否决,但如果我不得不猜测,这可能是原因。