Автофокус камеры CWAC () и проблема с режимами вспышки

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

Теперь, когда я вызываю getFlashMode(), при запуске моего приложения я получаю исключение нулевого указателя (которое, как мне кажется, происходит с объектом камеры). Однако после того, как я сделал первый снимок и нажал кнопку «сделать следующий снимок» (здесь я вызываю restartPreview()), getFlashMode() больше не выдает мне исключение нулевого указателя.

Что именно я упускаю при настройке? Я использую аннотации Android, поэтому мой первый вызов как автофокуса, так и getFlashMode находится в аннотированной функции @AfterViews. Почему автофокус и getFlashMode не работают при первом звонке?


person Rohan    schedule 01.08.2015    source источник
comment
Что именно я упускаю при настройке? -- Понятия не имею, отчасти потому, что не вижу вашего кода. Запустите демонстрационное приложение. Если демонстрационное приложение демонстрирует аналогичные проблемы на этом устройстве, значит, между библиотекой и устройством существует некоторая несовместимость. Если, OTOH, демонстрационное приложение работает правильно, то проблемы более тесно связаны с вашим кодом.   -  person CommonsWare    schedule 02.08.2015
comment
isAutofocusAvailable и getFlashModes возвращают значение true только после того, как я вызываю restartPreview после того, как сделал снимок и нажимаю кнопку «Сделать следующий снимок».   -  person Rohan    schedule 08.08.2015