Я использую Xiaomi RedMi под управлением Android 4.4.4. Я использую демонстрационный проект в качестве эталона для моего DemoCameraFragment. Когда камера запускается в первый раз, isAutofocusAvailable() возвращает false. После того, как я сделал первый снимок в режиме SingleShotMode, я нажимаю кнопку «сделать следующий снимок», в которой я вызываю restartPreview(). По какой-то причине isAutofocusAvailable() теперь возвращает true, и я могу успешно вызвать автофокус.
Теперь, когда я вызываю getFlashMode(), при запуске моего приложения я получаю исключение нулевого указателя (которое, как мне кажется, происходит с объектом камеры). Однако после того, как я сделал первый снимок и нажал кнопку «сделать следующий снимок» (здесь я вызываю restartPreview()), getFlashMode() больше не выдает мне исключение нулевого указателя.
Что именно я упускаю при настройке? Я использую аннотации Android, поэтому мой первый вызов как автофокуса, так и getFlashMode находится в аннотированной функции @AfterViews. Почему автофокус и getFlashMode не работают при первом звонке?