Управление фонариком на всех устройствах Android

Я использую Camera Package для разработки приложения для Android, чтобы включить вспышку, например:

    Camera mCamera = Camera.open();
    List<String> flashModes = mCamera.getParameters().getSupportedFlashModes();
    if (flashModes != null && flashModes.contains(Parameters.FLASH_MODE_TORCH)){
        parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
        mCamera.setParameters(parameters);
    } else if (flashModes != null && flashModes.contains(Parameters.FLASH_MODE_ON)){
        parameters.setFlashMode(Parameters.FLASH_MODE_ON);
        mCamera.setParameters(parameters);
    }
    if (!previewing){
        mCamera.startPreview();
        previewing = true;
    }

Он проверяет поддерживаемые режимы вспышки камеры и настраивает их. Он работает на устройствах Samsung Android и некоторых других, но не работает в LG V20, LG V30 и Mi Android. Я искал это и пробовал:

mCamera.autoFocus(Camera.AutoFocusCallback)
mCamera.setPreviewTexture(SurfaceTexture)

Но ничего не работает. Поэтому я использовал пакет Camera2 для api> 23, например:

CameraManager mCameraManager = (CameraManager) context.getSystemService(Context.CAMERA_SERVICE);
mCameraManager.setTorchMode("0", true);

И это работает, но в устройстве Самсунг появляется уведомление «Фонарик включен» и это очень раздражает.

Итак, мне нужен способ включить фонарик для всех устройств с пакетом камеры или не отображать уведомление «Фонарик включен» с помощью пакета Camera2.

С нетерпением жду вашего ответа, спасибо.

0
0
215
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ответ в приведенной ниже ссылке спасает мне жизнь!

SurfaceView необходим для некоторых устройств.

Светодиодный фонарик на Galaxy Nexus управляется каким API?

Другие вопросы по теме