166 votes

Comment empêche-t-on un appareil Android de s’endormir par programmation ?

Comment empêche-t-on un appareil Android de s’endormir par programmation ?

261voto

Witek Points 1722

Si vous voulez juste pour éviter le mode veille sur un View, appelez - setKeepScreenOn(true) sur View ou de définir l' keepScreenOn de la propriété d' true. Cela permettra d'éviter l'écran d'aller tandis que l' View sur l'écran. Aucune autorisation spéciale requise pour cela.

136voto

eldarerathis Points 14545

Vous voudrez probablement utiliser un wakelock. Exemple de la doc:

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
 PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
 wl.acquire();
   ..screen will stay on during this section..
 wl.release();

Il y a également un tableau sur cette page qui décrit les différents types de wakelocks.

Soyez conscient que certaines précautions doivent être prises lors de l'utilisation de wakelocks. Assurez-vous de toujours release() la serrure lorsque vous avez terminé avec elle (ou pas au premier plan). Sinon, votre application peut potentiellement causer de sérieux drainage de la batterie et de l'utilisation du PROCESSEUR.

Modifier pour ajouter: vous devez également Vous assurer que vous avez les WAKE_LOCK autorisation définie dans votre Manifeste.

128voto

dogatonic Points 836

J’ai trouvé une autre solution de travail : ajoutez la ligne suivante à votre application sous l’événement onCreate.

Mon projet de Cordova échantillon ressemble à ceci :

Après cela, mon application n’irait pas à dormir alors qu’il était ouvert. Merci pour la réponse va à xSus.

35voto

Shubh Points 1009

``pourrait être la meilleure option de schéma XML.

Plus d’informations : https://developer.android.com/training/scheduling/wakelock.html

3voto

lucabox Points 88

ce que @eldarerathis dit est correct dans tous les aspects, à la suite de verrouillage est la bonne façon de tenir l'appareil à partir d'aller dormir.

Je ne sais pas quel vous application doit faire, mais il est vraiment important que vous pensez à la façon dont l'architecte de votre application de sorte que vous ne pas forcer le téléphone à rester éveillé plus que vous avez besoin, ou la vie de la batterie en souffrira énormément.

Je tiens à souligner ce vraiment le bon exemple sur la façon d'utiliser AlarmManager pour déclencher des événements et de se réveiller le téléphone et votre app) pour effectuer ce que vous devez faire et puis aller dormir de nouveau: Alarm Manager (source: commonsware.com)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X