web-dev-qa-db-fra.com

Comment empêcher l'écran d'un appareil Android de s'éteindre pendant l'exécution d'une activité?

J'ai une Activity qui nécessite généralement un peu de temps pour regarder l'écran sans interagir avec lui.

Le problème est que l’écran s’éteint, comme avec presque toutes les autres applications . Je veux empêcher cette désactivation automatique de ma Activity, comme le fait Dolphin HD (si vous le configurez depuis le menu Paramètres).

Je veux laisser l’utilisateur éteindre l’écran en appuyant sur le bouton de blocage habituel, mais éviter le blocage automatique de l’appareil dans ma Activity.

Comment puis-je atteindre cet objectif?

Merci.

27
Alex

Ajoutez Android:keepScreenOn="true" à un widget de votre ressource XML de présentation pour cette activité. Tant que ce widget est visible à l'écran, l'écran ne s'éteindra pas automatiquement.

MODIFIER:

Une WakeLock, comme suggéré par d’autres réponses, fonctionnera techniquement. Mais alors vous devez relâcher manuellement la WakeLock (si vous vous y trompez, l'écran restera longtemps allumé). Et, puisque vous pourriez le gâcher, vous avez besoin de la permission WAKE_LOCK. Utiliser keepScreenOn évite tout cela.

74
CommonsWare

Pour le changer à la volée, procédez comme suit:

if (keepScreenOn)
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
else
    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
29
noelicus

Vous voudrez ajouter WAKE_LOCK à votre manifeste, puis définissez-le et supprimez-le selon les besoins de votre application . Consultez la documentation Google ici pour PowerManager.WAKE_LOCK.

http://developer.Android.com/reference/Android/os/PowerManager.html

0
Plastic Sturgeon

Vous voudrez peut-être utiliser le verrouillage du réveil pour empêcher l'écran de s'éteindre.Veuillez consulter http://developer.Android.com/reference/Android/os/PowerManager.WakeLock.html

0
Bhavya

Pour "Xamarin Android":

Window.AddFlags(WindowManagerFlags.KeepScreenOn);
0
Matheus Miranda