Modo ambiente

O Modo ambiente é um protetor de tela integrado ao Google TV e ao Android TV. O objetivo dele é evitar a exibição de imagens estáticas por longos períodos. Isso é importante para tecnologias de tela, como OLED, que podem ser suscetíveis a burn-in.

O SO coloca o dispositivo no Modo ambiente após 10 minutos de inatividade do usuário. Após outro período de inatividade do usuário (definido pela configuração de economia de energia do dispositivo), o SO entra no modo de economia de energia, desligando a tela. Os apps de reprodução de mídia podem impedir que o dispositivo entre no Modo ambiente, mesmo que o usuário não interaja com ele, por exemplo, ao assistir um filme.

Se o usuário interagir com o dispositivo em até 30 minutos após entrar no Modo ambiente, o app que estava ativo quando o Modo ambiente foi ativado será restaurado. Se o usuário interagir com o dispositivo mais de 30 minutos após entrar no Modo ambiente, ele será retornado à tela inicial. Quando o usuário iniciar o dispositivo usando o botão liga/desliga enquanto ele estiver no modo de economia de energia, ele será levado à tela inicial. Como alternativa, se o usuário iniciar o dispositivo enquanto ele estiver no modo de economia de energia usando botões específicos do app (por exemplo, o YouTube), ele será levado diretamente a esse app.

Reprodução de vídeo

Para a reprodução de vídeo, é importante impedir que o dispositivo entre no Modo ambiente durante a reprodução iniciada pelo usuário para proporcionar uma experiência de visualização ininterrupta. No entanto, os apps não podem impedir que os dispositivos entrem no Modo ambiente quando a reprodução for interrompida ou pausada.

Reprodução de áudio

Para a reprodução de áudio, os apps não podem impedir o Modo ambiente durante a reprodução a menos que implementem o próprio protetor de tela com imagens não estáticas. A reprodução de áudio continua enquanto o Modo ambiente está ativo.

A reprodução de áudio no Android mantém implicitamente um wake lock parcial. Isso não impede que o dispositivo entre no Modo ambiente, mas impede a transição subsequente para o modo de economia de energia. Portanto, a reprodução continua mesmo depois que o dispositivo entra no Modo ambiente, mas o dispositivo não pode entrar no modo de espera para permitir a reprodução ininterrupta.

Como impedir o Modo ambiente

É possível impedir que o SO coloque o dispositivo no Modo ambiente, mas isso precisa ser usado de acordo com os requisitos do Modo ambiente. Os desenvolvedores de apps não podem impedir que o dispositivo entre no modo de economia de energia.

Os apps podem impedir que a tela seja desativada definindo uma flag na Window:

Kotlin

activity?.window?.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)

Java

requireActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

O Modo ambiente será desativado enquanto essa flag estiver definida. Para reativá-lo, limpe a flag:

Kotlin

activity?.window?.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)

Java

requireActivity().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);