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 o OLED, que podem ser suscetíveis a queimaduras da tela.

O SO vai colocar o dispositivo no Modo ambiente após 10 minutos de inatividade do usuário. Após mais um período de inatividade do usuário (definido pela configuração de Economia de energia do dispositivo), o SO vai entrar no modo de Economia de energia, desligando a tela. 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, enquanto assiste um filme.

Se o usuário interagir com o dispositivo dentro de 30 minutos após entrar no Modo ambiente, o app que estava ativo quando ele foi inserido será restaurado. Se o usuário interagir com o dispositivo mais de 30 minutos depois de entrar no Modo ambiente, ele vai retornar à tela inicial. Quando o usuário inicia o dispositivo usando o botão liga/desliga enquanto está no modo de economia de energia, ele é direcionado para a tela inicial. Como alternativa, se o usuário iniciar o dispositivo enquanto estiver no modo de Economia de energia usando botões específicos do app, o usuário será levado diretamente para esse app.

Se você estiver usando o MediaSession para reprodução de mídia, ele vai manter um wake lock parcial implícito ao iniciar a reprodução. Pausar a reprodução não vai liberar o wake lock. Isso significa que o dispositivo pode entrar automaticamente no modo ambiente, mas não vai entrar no modo de Economia de energia depois. Se o usuário interagir com o dispositivo dentro de 30 minutos após entrar no Modo ambiente, o app vai ser restaurado.

Reprodução de vídeo

Para a reprodução de vídeos, é 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 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 continuará enquanto o ambiente integrado estiver ativo.

A reprodução de áudio no Android mantém implicitamente um wake lock parcial. Isso não vai impedir que o dispositivo entre no modo ambiente, mas vai impedir a transição para o modo de Economia de energia. A reprodução vai continuar mesmo depois que o dispositivo entrar no Modo ambiente, mas o dispositivo será impedido de entrar no modo de suspensão para permitir uma reprodução ininterrupta.

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 desse modo. 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 no Window:

Kotlin

requireActivity().window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)

Java

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

O modo ambiente vai ficar desativado enquanto essa flag estiver definida. Para reativá-la, limpe a sinalização:

Kotlin

requireActivity().window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)

Java

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