本周早些时候,我问了一个类似的问题,但我仍然不明白如何获取所有已安装应用程序的列表,然后 Select 一个运行.

我试过:

Intent intent = new Intent(ACTION_MAIN);
intent.addCategory(CATEGORY_LAUNCHER);

这只显示预安装的或可以运行ACTION_MAIN意图类型的应用程序.

我也知道我可以使用PackageManager来获取所有已安装的应用程序,但如何使用PackageManager来运行特定的应用程序呢?

推荐答案

以下是获取Android上安装的活动/应用程序列表的代码:

Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> pkgAppsList = context.getPackageManager().queryIntentActivities( mainIntent, 0);

您将在ResolveInfo中获得启动应用程序所需的所有数据.你可以查ResolveInfo javadoc here.

Android相关问答推荐

如何在Android中使用TextView设置动态文本的样式

当X为lambda函数时,如何避免Android Studio错误检测参数X未使用?

Android设备.Net Maui上的mp3文件列表

如何在Android Jetpack Compose中找到我的手机屏幕一行有多少个单词

strings.xml中字符串数组中的占位符

Android App Google AdMob";广告加载失败:3;带有测试ID,&q;广告加载失败:1 for My Gahad

如何制作安卓';s FileProvider在Android 11上使用外部存储+

Android Studio 在 list 文件中已经声明了活动类,但仍出现无法找到明确的活动类的错误

请求访问小部件中的位置权限

以下代码如何在 Android 上运行

视觉转换后获取文本

在 react native 中设置 react-native-paper 组件的样式

我们也可以或应该对主要小部件使用预览 compose 功能吗?

Android Studio 错误要求依赖它的库和应用程序针对 Android API 的 33 版或更高版本进行编译.

禁用通知权限后启动前台服务导致崩溃(Android 13)

如何在 kotlin 的 android room DB 中设置一对多关系

react-native-config 在发布版本中不起作用

如何增加 BottomSheetDialog 的高度以跟随垂直平移

OpenGLES,为什么 glReadPixels() 不能从 FBO 的 Renderbuffer 的 colored颜色 缓冲区中读取数据?

当我点击这个按钮时,我想使布尔值(boolean)为真.并将其传递给函数,以便在屏幕上显示内容