我正在开发一个自动分类已安装应用程序并允许用户启动这些应用程序的应用程序。我遇到了一个小问题,与相机应用程序有关。当我使用“queryIntentActivities”搜索“ResolveInfo”中的已安装应用程序时,我会两次得到相册ResolveInfo,并且两个对象是相同的。我想知道我是否漏掉了一些明显的东西,或者相机根本无法从包名称启动。
如果相机和相册共享同一个包,我是否仍然可以使用软件包管理器来拉取每个包的图标和标签?我想避免使用自己的drawable,因为不同的OEM制造商会制作不同的图标。
我知道我可以简单地使用捕获图像意图启动相机,但我不关心结果,我想将相机作为独立活动启动,而且使用此意图并不能真正解决我的问题。
更新:
所以我收到的相机和相册的“ResolveInfo”并不完全相同。它们共享相同的软件包名称,但我可以通过“ResolveInfo.loadLabel”和“ResolveInfo.loadIcon”(而不是我之前使用的“ResolveInfo.ApplicationInfo.loadLabel”...返回相同的标签和图标)来获取它们各自的图标。但是,我仍然无法找到任何方法单独启动相机和相册的活动。
更新2.0:
问题已解决。我在“ResolveInfo.ActivityInfo.name”中找到了唯一的活动字符串。现在,我只需使用该变量中列出的活动启动应用程序,而不是使用软件包名称启动它。