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