如何检测android中是否有前置摄像头?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何检测android中是否有前置摄像头?相关的知识,希望对你有一定的参考价值。

其实我的应用程序中有一些问题,

就像我有一个按钮打开前置摄像头和skan服务员徽章但问题是当我试图检查设备是否有相机,如果它没有我只是隐藏按钮。

但我有一个使用前置摄像头作为QR扫描仪的设备,所以它不是真正可以使用的相机,所以当我尝试点击该按钮时应用程序崩溃。

所以问题是如何处理和检查相机是否存在,但即使它有效?

答案

使用此方法检测设备是否具有前置摄像头。

private boolean hasFrontCamera() {
    Camera.CameraInfo cameraInfo = new Camera.CameraInfo();
    int numberOfCameras = Camera.getNumberOfCameras();
    for (int i = 0; i < numberOfCameras; i++) {
        Camera.getCameraInfo(i, cameraInfo);
        if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
            return true;
        }
    }
    return false;
}
另一答案

android Pie添加更多features用于枚举相机:

在Android 9设备上运行的应用可以通过调用getCameraIdList()来发现每个可用的摄像头。应用程序不应该假设设备只有一个后置摄像头或只有一个前置摄像头。

例如,如果您的应用程序有一个可在前后摄像头之间切换的按钮,则可能有多个前置或后置摄像头可供选择。您应该走过摄像机列表,检查每个摄像机的特性,并决定向用户公开哪些摄像机。

以上是关于如何检测android中是否有前置摄像头?的主要内容,如果未能解决你的问题,请参考以下文章

android Camera如何判断当前使用的摄像头是前置还是后置

android Camera 如何判断当前使用的摄像头是前置还是后置

MLkit 人脸检测不适用于 android 的前置摄像头

android 推断手机是否支持前置摄像头

Android如何显示前置摄像头(仅适用于镜子)

如何在android中使用前置摄像头[重复]