Ambient Mode — это встроенная в Google TV и Android TV заставка. Ее цель — избежать отображения статичных изображений в течение длительного времени. Это важно для технологий отображения, таких как OLED, которые могут быть подвержены выгоранию экрана.
ОС переведет устройство в режим Ambient Mode после 10 минут бездействия пользователя. После дальнейшего периода бездействия пользователя (определяемого настройкой энергосбережения устройства) ОС перейдет в режим энергосбережения, отключив дисплей. Приложения для воспроизведения мультимедиа могут помешать устройству перейти в режим Ambient Mode, несмотря на то, что пользователь не взаимодействует с ним, например, во время просмотра фильма.
Если пользователь взаимодействует с устройством в течение 30 минут после входа в режим Ambient Mode, приложение, которое было активно при входе в режим Ambient Mode, будет восстановлено. Если пользователь взаимодействует с устройством более 30 минут после входа в режим Ambient Mode, он будет возвращен на главный экран. Когда пользователь запускает устройство с помощью кнопки питания, когда оно находится в режиме Energy Saver, он будет перенаправлен на главный экран. В качестве альтернативы, если пользователь запускает устройство, когда оно находится в режиме Energy Saver, с помощью определенных кнопок приложения (например, YouTube), он будет перенаправлен непосредственно в это приложение.
Воспроизведение видео
Для воспроизведения видео важно предотвратить переход устройства в режим Ambient Mode во время воспроизведения, инициированного пользователем, чтобы обеспечить непрерывный просмотр. Однако приложения не должны препятствовать переходу устройств в режим Ambient Mode, когда воспроизведение остановлено или приостановлено.
Воспроизведение аудио
Для воспроизведения звука приложения не должны блокировать Ambient Mode во время воспроизведения, если они не реализуют собственную заставку с нестатичным изображением. Воспроизведение звука будет продолжаться, пока активен Ambient Mode.
Воспроизведение аудио на Android будет неявно удерживать частичную блокировку пробуждения . Это не помешает устройству войти в режим Ambient Mode, но предотвратит последующий переход в режим энергосбережения. Таким образом, воспроизведение будет продолжаться даже после того, как устройство перейдет в режим Ambient Mode, но устройство не сможет перейти в спящий режим, что позволит продолжить воспроизведение без прерываний.
Предотвращение режима Ambient
Можно запретить ОС переводить устройство в режим Ambient Mode, но это должно использоваться в соответствии с требованиями Ambient Mode . Разработчики приложений не могут запретить устройству переходить в режим энергосбережения.
Приложения могут предотвратить выключение экрана, установив флаг в Window
:
Котлин
requireActivity().window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
Ява
requireActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
Режим Ambient Mode будет отключен, пока установлен этот флаг. Чтобы снова включить его, необходимо снять флаг:
Котлин
requireActivity().window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
Ява
requireActivity().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);