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

问题描述 投票:3回答:2

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

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

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

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

android camera crash
2个回答
3
投票

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

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;
}

1
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.