Was ist die richtige, nicht veraltete Methode, um das Gerät aufzuwecken?

Meine Anforderung lautet: Nach einem GCMenn eine @ -Nachricht eingeht, sollte das Gerät aufwachen, um eine Benachrichtigung mit hoher Priorität anzuzeigen. Das GerätSollte den Bildschirm einschalten.

Zurzeit benutze ich WakeLock um das zu erreichen. DasnewWakeLock()ie @ -Methode erwartet, dass eine Sperrstufe UND ein Flag übergeben werden (als 1. Parameter, bitweise oder als'd

Ich benutzePowerManager.ACQUIRE_CAUSES_WAKEUPflag da tut es genau das was ich brauche. Ich bin jedoch ein bisschen frustriert über die Sperrstufe. Also nach dem docs, Ich habe folgende Möglichkeiten:

PARTIAL_WAKE_LOCK - nicht kompatibel mitACQUIRE_CAUSES_WAKEUP / schaltet den Bildschirm nicht einSCREEN_DIM_WAKE_LOCK - veraltetSCREEN_BRIGHT_WAKE_LOCK - veraltetFULL_WAKE_LOCK - veraltet

Das vorgeschlageneFLAG_KEEP_SCREEN_ON ist in diesem Szenario völlig unbrauchbar. Am Ende habe ich nur die Ablehnungswarnung unterdrückt:

@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();

Die Frag: Gibt es eine nicht veraltete zuverlässige Möglichkeit, das Gerät im beschriebenen Fall aufzuwecken?

BEARBEITE Ich bitte nicht um Problemumgehungen, um das Gerät aufzuwecken. Meine Frage ist Ob dies möglich ist, um das Gerät aus dem Hintergrund aufzuwecken (ohne ein laufendesActivity) keine veralteten APIs verwenden

Antworten auf die Frage(2)

Ihre Antwort auf die Frage