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 - descontinuada

O 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

questionAnswers(1)

yourAnswerToTheQuestion