Почему нет кнопки HDR?

В этой статье упоминается новый режим камеры HDR, доступный в Android 4.2:

Колесо настройки камеры в Android 4.2

но мой Galaxy Nexus не показывает эту опцию:

В колесе настройки камеры отсутствует кнопка HDR

Почему бы нет?

Ответы (1)

Я немного взглянул на это теперь, когда исходный код Android 4.2 отсутствует.

Оказывается, HDR не создается самим приложением камеры, это режим сцены, который должен поддерживаться реализацией операционной системы и/или драйверами.

Приложение камеры удалит кнопку HDR, если:

  1. Вы не используете уровень API 17 (Android 4.2) или выше, или;
  2. Camera.Parameters.getSupportedSceneModes() возвращает значение null или список, не содержащий строку «hdr».

Короче говоря, режим HDR реализован самим драйвером камеры операционной системы и не может быть добавлен в стандартное приложение камеры без изучения исходного кода ОС. Я еще не сделал этого, но если я выясню это, я опубликую обновление.

Насколько я знаю, на XDA есть ветка , в которой объясняется, как запустить утечку 4.2 camera.apk на Galaxy Nexus. Так что дело не в драйвере, а в библиотеке libcamera (дополнительную информацию см. в связанном .zip-файле в теме)
@ ce4 Приложение камеры обратно совместимо с 4.1, но, как я уже сказал, оно удалит кнопку HDR с экрана, если не пройдет один из двух тестов выше. Приложение камеры просто запрашивает режим HDR из операционной системы, если он доступен, я не изучал части С++, чтобы увидеть, находится ли он в ОС или в драйвере, но он, безусловно, не является частью приложения камеры/галереи или Java. части Андроида.