Как определить, доступна ли фронтальная камера в Android? - PullRequest
0 голосов
/ 03 сентября 2018

На самом деле у меня есть некоторые проблемы в моем приложении,

Как будто у меня есть кнопка, которая открывает фронтальную камеру и сканирует значок официанта, но проблема возникает, когда я пытаюсь проверить, есть ли на устройстве камера, и если нет, я просто скрываю эти кнопки.

Но у меня есть устройство, которое использует переднюю камеру в качестве QR-сканера, так что на самом деле это не та камера, которую можно использовать, поэтому приложение вылетает при попытке нажать эту кнопку.

Итак, вопрос в том, как я могу обработать и проверить, существует ли не только камера, но даже если она работает?

Ответы [ 2 ]

0 голосов
/ 03 сентября 2018

Android Pie добавляет больше функций для перечисления камер:

Приложения, работающие на устройствах Android 9, могут обнаружить каждую доступную камеру, вызвав getCameraIdList () . Приложение не должно предполагать, что устройство имеет только одну заднюю камеру или только одну переднюю камеру.

Например, если в вашем приложении есть кнопка для переключения между передней и задней камерами, на выбор может быть более одной передней или задней камеры. Вы должны просмотреть список камер, изучить характеристики каждой камеры и решить, какие камеры предоставить пользователю.

0 голосов
/ 03 сентября 2018

Используйте этот метод, чтобы определить, имеет ли устройство фронтальную камеру или нет.

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