대기 모드는 Google TV 및 Android TV에 내장된 화면 보호기입니다. 장시간 동안 정적 이미지가 표시되지 않도록 하는 것이 목적입니다. 이는 화면 번인에 취약할 수 있는 OLED와 같은 디스플레이 기술에 중요합니다.
OS는 사용자가 10분 동안 활동하지 않으면 기기를 대기 모드로 전환합니다. 사용자가 추가로 활동하지 않는 기간(기기 에너지 절약 모드 설정에 따라 정의됨)이 지나면 OS가 에너지 절약 모드로 전환되어 디스플레이가 꺼집니다. 미디어 재생 앱은 사용자가 상호작용하지 않더라도(예: 영화를 시청하는 동안) 기기가 대기 모드로 전환되지 못하도록 할 수 있습니다.
사용자가 대기 모드로 전환된 후 30분 이내에 기기와 상호작용하면 대기 모드로 전환될 때 활성 상태였던 앱이 복원됩니다. 사용자가 대기 모드로 전환된 후 30분이 지나 기기와 상호작용하면 홈 화면으로 돌아갑니다. 사용자가 에너지 절약 모드에서 전원 버튼을 사용하여 기기를 시작하면 홈 화면으로 이동합니다. 또는 사용자가 에너지 절약 모드에서 특정 앱 버튼 (예: YouTube)을 사용하여 기기를 시작하면 해당 앱으로 바로 이동합니다.
동영상 재생
동영상 재생의 경우 사용자가 시작한 재생 중에 기기가 대기 모드로 전환되지 않도록 하여 끊김 없는 시청 환경을 제공하는 것이 중요합니다. 하지만 재생이 중지되거나 일시중지된 경우 앱에서 기기가 대기 모드로 전환되지 못하도록 해서는 안 됩니다.
오디오 재생
오디오 재생의 경우 앱이 정적 이미지가 아닌 자체 화면 보호기를 구현하지 않는 한 재생 중에 대기 모드를 방지해서는 안 됩니다. 대기 모드가 활성 상태인 동안 오디오 재생이 계속됩니다.
Android의 오디오 재생은 부분 wakelock을 암시적으로 유지합니다. 이렇게 해도 기기가 대기 모드로 전환되지 못하도록 하지는 않지만 에너지 절약 모드로의 후속 전환은 방지 합니다. 따라서 기기가 대기 모드로 전환된 후에도 재생이 계속되지만 끊김 없는 재생을 위해 기기가 절전 모드로 전환되지 못하도록 합니다.
대기 모드 방지
OS에서 기기를 대기 모드로 전환하지 못하도록 할 수 있지만 대기 모드 요구사항에 따라 사용해야 합니다. 앱 개발자는 기기가 에너지 절약 모드로 전환되지 못하도록 할 수 없습니다.
앱은
Window에 플래그를 설정하여 화면이 꺼지지 않도록 할 수 있습니다.
Kotlin
activity?.window?.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
자바
requireActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
이 플래그가 설정되어 있는 동안 대기 모드가 사용 중지됩니다. 다시 사용 설정하려면 플래그를 지워야 합니다.
Kotlin
activity?.window?.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
자바
requireActivity().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);