我有一个准备好运行的应用程序,它需要有一个后置摄像头。显然它<uses-permission android:name="android.permission.CAMERA" />
在清单中有权限,但这并不排除只有一个前置摄像头的 Nexus 7 平板电脑等设备。
没有经过并手动排除设备,我该怎么做?
我只知道一个程序化的答案。正如这个问题所示,您可以使用
PackageManager pm = context.getPackageManager();
return pm.hasSystemFeature(PackageManager.FEATURE_CAMERA);
如果设备没有后置摄像头,则返回 false(在 Nexus 7 上为 false)
国旗
FEATURE_CAMERA_FRONT
相反,它仍然是真实的。因此,您可以在启动您的第一个活动时使用此测试,并在您的应用描述中使用一个大警告。
但是,除了手动排除设备之外,我不知道有一种方法可以使用清单来排除符合此条件的设备。
编辑:作为相关链接的另一个问题指出了清单的这个使用功能标志:
<uses-feature android:name="android.hardware.camera" android:required="false"/>
根据文档:
该应用程序使用设备的相机。如果设备支持多个摄像头,则应用程序使用背对屏幕的摄像头。
因此,对于仅面向前端的设备来说,这有点模棱两可。
你可以使用在android中给出的uses-feature标签。您必须在清单文件中声明此标签。它会根据给定的条件自动过滤设备。只需在清单中使用此 uses-feature 标记,如下所示:
<uses-feature android:name="android.hardware.camera" android:required="true" />
有关更多详细信息,请访问以下链接:- Android 使用 Premission