qual é a maneira correta e não obsoleta de ativar o dispositivo?
Minha exigência é: depois de umGCM mensagem chegar, o dispositivo deve acordar para exibir uma notificação de alta prioridade. O dispositivodeve ligar a tela.
Atualmente estou usandoWakeLock Para alcançar isto. onewWakeLock()
O método espera que um nível de bloqueio E um sinalizador sejam passados (como o 1º parâmetro, bit a bit ou mais).
estou a usarPowerManager.ACQUIRE_CAUSES_WAKEUP
flag, pois faz exatamente o que eu preciso. No entanto, estou um pouco frustrado com o nível de bloqueio. Então, de acordo com odocs, Eu tenho as seguintes opções:
PARTIAL_WAKE_LOCK
- não é compatível comACQUIRE_CAUSES_WAKEUP
/ não liga a telaSCREEN_DIM_WAKE_LOCK
- descontinuadaSCREEN_BRIGHT_WAKE_LOCK
- descontinuadaFULL_WAKE_LOCK
- descontinuadaO sugeridoFLAG_KEEP_SCREEN_ON
é completamente inútil nesse cenário. Acabei suprimindo o aviso de reprovação:
@SuppressWarnings("deprecation")
PowerManager.WakeLock screenOn = ((PowerManager) c.getSystemService(Context.POWER_SERVICE)).newWakeLock(
PowerManager.SCREEN_DIM_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, TAG);
screenOn.acquire();
mNotifyMgr.notify(mNotificationId, mBuilder.build());
screenOn.release();
A questão: existe uma maneira confiável e não obsoleta de ativar o dispositivo no caso descrito?
EDITAR Não estou pedindo soluções alternativas para ativar o dispositivo. Minha pergunta ése é possível ativar o dispositivo em segundo plano (sem uma execuçãoActivity
) usando APIs descontinuadas