如何排除没有后置摄像头的设备?

时间:2013-07-29 10:12:07

标签: android eclipse

我准备好了一个应用程序,需要有一个后置摄像头。显然它在清单中具有<uses-permission android:name="android.permission.CAMERA" />权限,但这并不排除Nexus 7平板电脑等只有前置摄像头的设备。

如果没有通过并手动排除设备,我该怎么办?

2 个答案:

答案 0 :(得分:0)

我只知道一个程序性的答案。 如this question所示,您可以使用

PackageManager pm = context.getPackageManager();
return pm.hasSystemFeature(PackageManager.FEATURE_CAMERA);

如果设备没有后置摄像头,则返回false(在Nexus 7上为假)

旗帜

FEATURE_CAMERA_FRONT

仍然是真的。因此,您可以在启动第一项活动时使用此测试,并在应用说明中发出重大警告。

但是,我不知道如何使用清单来排除此条件下的设备,除非手动排除设备。

编辑:链接为相关的另一个问题指出了清单的这个uses-feature标志:

<uses-feature android:name="android.hardware.camera" android:required="false"/>

根据文件:

  

应用程序使用设备的相机。如果设备支持多个摄像头,则应用程序使用背离屏幕的摄像头。

因此,面向前方的设备有点含糊不清。

答案 1 :(得分:0)

您可以使用inandroid中给出的uses-feature标记。您必须在清单文件中声明此标记。它会根据给定的条件自动过滤设备。只需在清单中使用此uses-feature标记,如下所示:

<uses-feature android:name="android.hardware.camera" android:required="true" />

有关详细信息,请访问以下链接: - Android Uses Premission