J'ai un signal qui met mon application en veille pendant un nombre de minutes donné (en utilisant AlarmManager), puis la réactive.Wakelock n'allume pas l'écran? Aidez-moi?
Tout fonctionne sauf que l'écran ne s'allume jamais. J'utilise un wakelock comme si d'une classe de BroadcastReceiver:
KeyguardManager key = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
KeyguardLock lock = key.newKeyguardLock(TAG);
lock.disableKeyguard();
Log.v(TAG, "alarm: disabled keyguard.");
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
gpsMain.wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, TAG);
gpsMain.wl.acquire();
Log.v(TAG, "alarm: acquired wakelock");
Intent i = new Intent();
i.setAction(CUSTOM_INTENT);
context.sendBroadcast(i);
Je puis relâchez le wakelock quand je suis sûr que mon application est en cours d'exécution et connecté à nouveau. Cependant, l'écran ne s'allume jamais! L'application ne revient réellement à la vie quand je frappe le bouton d'alimentation pour réveiller l'écran manuellement.
Je développe sur un HTC Hero. Toute aide serait grandement appréciée.
Oui, j'ai changé mon verrou pour utiliser PowerManager.ACQUIRE_CAUSES_WAKEUP en plus de FULL_WAKE_LOCK. J'utilise aussi AlarmManager.RTC_WAKEUP, qui est censé réveiller le téléphone quand l'alarme se déclenche. Toujours pas de chance si ... –
@Tom G: Hmmmm ... c'est bizarre. J'ai juste eu un échange d'email cette semaine avec quelqu'un sur la liste 'androïdes-développeurs ', qui a dit que cela a fonctionné pour lui. Je suis un peu confus au sujet de vos symptômes: est-ce que votre code fonctionne mais l'écran ne s'allume pas, ou votre code ne fonctionne-t-il pas? – CommonsWare
Donc, je pense que je l'ai résolu. J'achetais le wakelock dans le broadcastreceiver que l'alarme appelle, mais je le relâchais dans mon fil principal. J'ai déplacé la sortie à la fin de la fonction onReceive et maintenant il semble fonctionner. –