Antes de marcar este post como "duplicado", estou escrevendo este post porque nenhum outro post contém a solução para o problema.
Estou tentando desligar o dispositivo e, após alguns minutos ou troca de sensor, ligue-o novamente.
Desligue os testes de exibição
Consigo desligar a tela usando:
params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON;
params.screenBrightness = 0;
getWindow().setAttributes(params);
Não consigo desligar a tela usando o método wl.release ().
Ativar teste de exibição
Meu primeiro palpite, como segue, não funciona. Nada acontece, a tela permanece desligada.
params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON;
params.screenBrightness = -1f;
getWindow().setAttributes(params);
Também tentei usar wakelocks, sem sucesso.
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "tag");
wl.acquire();
Finalmente tentei o seguinte, sem resultado.
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
Resumindo, não recebo nenhum tipo de erro no console para nenhum desses métodos. Meu texto de teste "A tela deve estar ligada" aparece na tela quando ligo o dispositivo usando o botão liga / desliga. Isso mostra que o código deveria ter sido executado. Por favor, responda somente se você testou o código, parece que muitas das funções, como params.screenBrightness = -1, não funcionam como deveriam de acordo com o SDK.