Держите экран включенным

Некоторым приложениям, например играм или фильмам, экран должен оставаться включенным. Некоторые 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)
    }
}

Ява

public class MainActivity extends Activity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    getWindow().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) .

Режим Ambient для телевизора

На телевизионных устройствах используйте FLAG_KEEP_SCREEN_ON , чтобы предотвратить переход устройства в Ambient Mode во время активного воспроизведения видео. Если для активности на переднем плане не установлен FLAG_KEEP_SCREEN_ON , устройство автоматически переходит в Ambient Mode после периода бездействия.

См. также