В моем приложении мне нужно запустить фонарик в мероприятии, которое запускается 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)