某些设备上的相机问题

时间:2015-01-09 09:39:54

标签: android camera

我有某种LauncherApp(从我的应用中轻松启动其他应用)。在某些设备上,我提到Camera不在PackageManager

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

这是因为在此设备上Camera不是应用程序,而是Gallery - 应用程序中的活动!

问题是我的整个逻辑基于ApplicationInfos而不是ActivityInfos

我设法通过意图获取相机的ActivityInfo:

Intent camera = new Intent(android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA);
camera.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
ActivityInfo actInfoCamera = camera.resolveActivityInfo(getPackageManager(), 0);

现在使用actInfoCamera我可以检索相机和标签的图标。这就是我所需要的。但我的整个计划现在又基于ApplicationInfo。所以我需要将ActivityInfo转换或转换为ApplicationInfo(用于排序,检索图标和标签等)。

当我尝试这样做时:

actInfoCamera.applicationInfo;

我回到开头,ApplicationInfo现在再次显示Gallery和标签Gallery的图标......或者当我尝试时:

ApplicationInfo appInfoCamera = (ApplicationInfo) actInfoCamera;

ActivityInfo转换为ApplicationInfo无效。

所以我得到了两个问题:

1)有没有办法确定该设备上的相机是单个应用程序还是Gallery应用程序中的活动。因为我不想在我的应用程序列表中添加两次相同的相机应用程序。另请注意,用户可能会在其包名中包含一些其他相机应用程序,其中包含“相机”。我担心这不容易......

2)我如何获得activity camera gallery ApplicationInfo {{1}}作为{{1}}来完成一个简单的方法在我的整个逻辑中实施。

非常感谢任何帮助。

提前致谢!

0 个答案:

没有答案