Я использую образец camera2raw из Android, с некоторыми серьезными модификациями. Одна из моих целей - сделать приложение с интервальной съемкой, которое делает несколько снимков, устанавливает будильник, спит, и когда срабатывает будильник, оно пробуждает устройство.
Итак, у нас есть этот бит кода:
@Override
public void onResume() {
Log.e(TAG, "On resume called...");
super.onResume();
startBackgroundThread();
openCamera();
Это работает большую часть времени, но иногда, если телефон слишком долго спит и входит в режим ожидания, я получаю исключение в openCamera (); когда он вызывает manager.openCamera (cameraId, mStateCallback, backgroundHandler);
Исключение говорит, что у меня нет разрешения открывать камеру в фоновом режиме.
Так что я думаю, что решение будет чтобы немного подождать, но я не очень знаком с Java и Android, и я не уверен, как это сделать. Я делаю большую часть вещей в нативном коде, где решением было бы просто использовать небольшой usleep (); и попробуйте еще раз.
Единственное решение, которое я могу придумать сейчас, это отловить ошибку, когда камера не открывается, установить переменную с успехом / неудачей, и, если она не удалась, вызвать ее снова из моего нативного код. Но было интересно, есть ли более простое решение для этого.
Любая помощь будет оценена.