我正在构建一个应用程序,它自动对已安装的应用程序进行排序并允许用户启动这些应用程序。我刚刚遇到了相机应用程序的一个小问题。当我使用“ queryIntentActivities ”为“ ResolveInfo ”扫描已安装的应用程序时,我得到了两次图库 ResolveInfo 并且两个对象都是相同的。我想知道我是否遗漏了一些明显的东西,或者相机根本无法从包名称中启动。
如果相机和图库共享同一个包,我是否仍然可以使用包管理器来拉取每个包的图标和标签?我想避免使用我自己的可绘制对象,因为不同的 OEM 制作不同的图标。
我知道我可以简单地以捕获图像意图启动相机,但我不关心结果,我想将相机作为独立活动启动,加上使用此意图并不能真正解决我的问题。
更新:
所以我收到的相机和画廊的ResolveInfo并不完全相同。它们共享相同的包名称,但我可以通过ResolveInfo.loadLabel和ResolveInfo.loadIcon提取它们各自的图标(而不是我对ResolveInfo.ApplicationInfo.loadLabel所做的事情......返回相同的标签和图标)。但是我仍然无法找到任何方法来分别启动相机和画廊的活动。
更新 2.0
问题解决了。我在ResolveInfo.ActivityInfo.name中找到了唯一的活动字符串。现在,我不再使用包名称启动应用程序,而是使用该变量中列出的活动启动它。