68 votes

Gardez l'écran éveillé tout au long de mon activité

J'ai trois activités dans mon application. Je veux garder l'écran éveillé quand il est dans la deuxième activité. L'écran ne doit pas aller dans ma deuxième activité, à moins que le "lock" est enfoncée manuellement. Je suis passé par de nombreux liens, mais ils semblent pas clairs pour moi.

168voto

Ted Hopp Points 122617

Vous pouvez le faire de deux manières. Vous pouvez définir la FLAG_KEEP_SCREEN_ON sur l'activité de la fenêtre:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

Un autre moyen est d'utiliser un signal de verrouillage:

mWakeLock = getContext().getSystemService(Context.POWER_SERVICE)
    .newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, getClass().getName());

Le manifeste devra inclure cette ligne dans votre manifeste:

<uses-permission android:name="android.permission.WAKE_LOCK"/>

57voto

Je trouve cette solution bien plus simple:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" // Whatever your layout is
    ...
    android:keepScreenOn="true"> // Add this line

Juste ajouter ceci à votre activité mise en page XML.

6voto

user370305 Points 46287

Comme par je comprends votre question, je pense que vous devez utiliser WAKE_LOCK pour votre application.

Quelque chose comme,

final PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
mWakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ON_AFTER_RELEASE,"");    
mWakeLock.acquire();

Et dans votre application manifest.xml fichier fichier ajouter cet,

<uses-permission android:name="android.permission.WAKE_LOCK" />

1voto

bindal Points 1311

essayez d'utiliser cette

getWindow().addFlags(
                        WindowManager.LayoutParams.FLAG_FULLSCREEN
                                | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

0voto

PetarT Points 43

Ce code est obsolète, utilisez ceci à la place:

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
wl.acquire();

Après vous avez terminé avec l'utilisation, composez le (la meilleure solution est d'appeler cette méthode dans la méthode onDestroy de l'activité):

wl.release();

Plus d'informations à ce sujet sur ce lien

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