Как в Android можно получить доступ к фонарику/вспышке камеры, если фонарик к данной камере не привязан?

В стандартном приложении "Камера" на телефоне можно включить вспышку/фонарик. При этом, когда я пытаюсь сделать это в своем приложении с помощью cameraManager.setTorchMode(cameraID, true); я получаю ошибку.

Вывод из debugger дает знать о том, что камера не обладает функцией вспышки:

boolean hasFlashForFrontCamera(CameraManager cManager) throws CameraAccessException {
        for(final String cameraId : cManager.getCameraIdList()){
            CameraCharacteristics characteristics = cManager.getCameraCharacteristics(cameraId);
            boolean cFlash = characteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE);
            Log.i(LOG_TAG, "CameraID: "+cameraId);
            Log.i(LOG_TAG, "CameraFlashInfo: "+cFlash);
        }
        return false;
    }

Debugger:

I/: CameraID: 1
    CameraFlashInfo: false

Получается, в стандартном приложении "Камера" данная вспышка включается отдельно от камеры. Есть ли еще какой-то способ получить доступ к этому фонарику? Не через Camera или Camera2.


Ответы (1 шт):

Автор решения: denisnumb

К сожалению, конкретно в моем случае сделать уже ничего не получится. Написал в тех. поддержку Samsung и получил такой ответ:

The front flashlight of Galaxy A6 is controlled with a Samsung specific method because it is not compatible with Android CameraManager. That's why you are not getting the front flashlight.

This means that I can’t access it on my own in Android Studio?

Yes, you can not use it on your app using Android Studio. Because it is not compatible with Android CameraManager. In the Samsung camera, it uses a Samsung specific method.

→ Ссылка