我准备好了一个应用程序,需要有一个后置摄像头。显然它在清单中具有<uses-permission android:name="android.permission.CAMERA" />
权限,但这并不排除Nexus 7平板电脑等只有前置摄像头的设备。
如果没有通过并手动排除设备,我该怎么办?
答案 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