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.
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.
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);
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
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
Pour "Xamarin Android":
Window.AddFlags(WindowManagerFlags.KeepScreenOn);