Android - Éteignez l'écran sans passer en mode Standby
Je sais que cette question a été posée de nombreuses fois, mais il n'a jamais été répondu de façon satisfaisante.
Mon problème est le suivant:
J'ai une activité qui empêche l'écran de s'éteindre pour un montant prédéfini de temps.
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
Lorsque le temps prédéfini est sur je montre une boîte de dialogue avec un compte à rebours pour informer l'utilisateur que l'affichage s'éteint en 10 secondes si il ne marche pas, appuyez sur "annuler".
J'ai réussi à désactiver l'affichage, mais le téléphone toujours passe en Mode StandBy.
Pour éteindre, j'ai utilisé:
Window mywindow = getWindow();
WindowManager.LayoutParams lp = mywindow.getAttributes();
lp.screenBrightness = 0.0f;
mywindow.setAttributes(lp);
Est-il possible de complètement assombrir l'écran sans passer en Mode StandBy (qui interrompt l'activité).
Mon but est que l'utilisateur doit être en mesure de simplement appuyez sur l'écran pour égayer l'écran de nouveau. L'activité doit rester dans un état actif.
Une question similaire a été posée ici.
Depuis que cette question a presque un an, je suis en espérant que peut-être quelqu'un réussi à de cette dans le temps de le dire.
Beaucoup de salutations
Siggy
source d'informationauteur Siggy
Vous devez vous connecter pour publier un commentaire.
Semble qu'il n'est pas possible d'éteindre l'écran ET de le réactiver en appuyant simplement sur l'écran.
Ma nouvelle approche:
La PARTIAL_WAKE_LOCK garde le CPU tourne, mais permet l'affichage à l'arrêt.
Lorsque l'alimentation ou à la maison de bouton est enfoncé, l'affichage s'allume de nouveau et l'activité devient visible à nouveau (sans avoir à "slide-to-unlock" ou qqch. d'autre).
Ne pas oublier de libérer la
screenWakeLock
.Dans mon cas, je l'ai fait dans le
onResume()
de l'activité:Peut-être que cela aide quelqu'un avec un problème similaire dans l'avenir.
Note : je n'étais pas en mesure de travailler avec WAKELOCK
J'ai pensé à une solution de contournement qui consiste à changer la SCREEN_OFF_TIMEOUT. Utilisation du dessous
code de l'atteindre.
ce jeux 10 millisecondes délai d'attente pour la screen_timeout à l'ÉCHELLE du SYSTÈME .
Maintenant, vous pourriez être troublé par l'ÉCHELLE du SYSTÈME des changements apportés par cette. Pour contourner cela, vous pouvez obtenir la valeur par défaut screen_timeout_time et l'enregistrer dans une variable puis définissez l'arrière du Système SCREEN_OFF_TIMEOUT au finish() de votre activité.
Avant de 10ms que notre screen_timeout obtenir SCREEN_OFF_TIMEOUT,
Maintenant quand vous avez terminé vos modifications, ou si votre activité se termine, vous pouvez régler la SCREEN_OFF_TIMEOUT dos .