Как включить фонарик при выключенном экране устройства? - PullRequest
0 голосов
/ 14 октября 2018

В моем приложении мне нужно запустить фонарик в мероприятии, которое запускается BroadcastReceiver.Он работает нормально, если приложение находится на переднем или заднем плане и экран включен, но если экран выключен (с блокировкой клавиатуры или без нее), приложение вылетает.

Анализ: Когда экран выключен, создается камераобъект все еще успешен, но Camera.startPreview () выбрасывает RuntimeException.

Я могу понять мотивацию запретить активацию камеры, когда экран выключен, но как я могу просто включить / выключить фонарик?

cam = Camera.open();
//...
try {
     cam.startPreview();
}catch(RuntimeException e){
    Log.w(TAG,"Failed opening camera preview. Maybe screen locked?: " + e.getMessage());
    return;
}

Разрешения:

 <uses-permission android:name="android.permission.CAMERA" />

Я пытался использовать разрешение FLASHLIGHT (недокументированное), но оно игнорируется во время выполнения.

Протестировано на Android 8.1, Xiaomi Mi A1 minSdkVersion 22 * ​​1013*

Ссылки, которые я искал:

вспышка не включена

фонарик не работает, когда экран устройства выключен / находится в спящем режиме (Android Studio)

1 Ответ

0 голосов
/ 14 октября 2018

Если экран выключен, действие на самом деле не будет запущено, пока не будет включено.Вот почему камера не включается.Вместо этого, запустите сервис, который может сделать это немедленно.

...