Некоторым приложениям, например играм или видеопроигрывателям, требуется, чтобы экран не отключался. Некоторые API Android автоматически поддерживают экран включенным. В других случаях вы можете установить флаг, чтобы вручную оставить экран включенным.
Как вручную настроить, чтобы экран не выключался
Чтобы экран устройства не отключался, установите флаг FLAG_KEEP_SCREEN_ON в действии. Этот флаг можно установить только в действии, но не в сервисе или другом компоненте приложения. Пример:
class MainActivity : Activity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) } }
Ещё один способ не дать экрану выключиться – задать атрибут android:keepScreenOn в XML-файле макета приложения:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:keepScreenOn="true"> ... </RelativeLayout>
Использование android:keepScreenOn="true" эквивалентно использованию FLAG_KEEP_SCREEN_ON.
Вы можете использовать любой подход, который лучше всего подходит для вашего приложения. Преимущество программной установки флага в вашей активности заключается в том, что она дает вам возможность программно очистить флаг позже и тем самым позволить экрану выключиться.
Если приложение с флагом FLAG_KEEP_SCREEN_ON переходит в фоновый режим, система позволяет экрану выключиться в обычном режиме. В этом случае вам не нужно явно снимать флажок. Если приложению больше не нужно держать экран включенным, очистите флаг, вызвав clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON).
Спящий режим для телевизора
На телевизорах используйте FLAG_KEEP_SCREEN_ON, чтобы устройство не переходило в спящий режим во время воспроизведения видео. Если для активного действия на переднем плане не задано свойство FLAG_KEEP_SCREEN_ON, устройство автоматически переходит в спящий режим после периода бездействия.