2012-07-05 14 views

Respuesta

19

que tiene que declarar esta utiliza en el permiso de AndroidManifest:

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

Y en el código de la actividad:

PowerManager powerManager = (PowerManager)context.getSystemService(Context.POWER_SERVICE); 
WakeLock wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "My Lock"); 
wakeLock.acquire(); 

Sólo recuerde a liberar este bloqueo cuando la aplicación está en pausa o destruida por hacer esto:

wakeLock.release(); 

Por lo general, se sugiere llamar al adquiere método dentro de onResume() de su actividad y el versión método en onPause(). De esta manera, garantizamos que nuestra aplicación sigue funcionando bien en caso de pausa o reanudación.

+3

FULL_WAKE_LOCK es obsoleta desde la API 17, FLAG_KEEP_SCREEN_ON es ahora el camino a seguir :) –

4
KeyguardManager keyguardManager = (KeyguardManager)getSystemService(Activity.KEYGUARD_SERVICE); 
KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE); 
lock.disableKeyguard(); 

en AndroidManifest:

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

O

Seguir this link

20

Otra forma de mantener la pantalla de bloqueo sin tener que solicitar el permiso en el Manifiesto es:

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

¿Estás haciendo tu largo proceso de carga en el hilo de la interfaz de usuario? Algo no parece correcto: si el proceso es tan largo que el tiempo de espera del bloqueo de la pantalla y su proceso finalizan, tal vez deba ir en un servicio en segundo plano.

+0

¿Cómo puedo desactivar esta bandera de nuevo si quiero? –

+1

Pruebe getWindow(). ClearFlags (WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); – barry

0

una opción interesante que no fue mencionado todavía es el método

View#setKeepScreenOn(boolean onOff) 

. Esto realmente se puede usar dinámicamente en cualquier punto durante el tiempo de ejecución de la aplicación, p. para establecer el modo de pantalla dependiendo del estado de la aplicación

-1

Ir con el código de bloqueo del teclado de su trabajo a la perfección,

basta con pegar el código en onCreate Método en su archivo mainactivity Y permiso en el archivo de manifiesto de Android

0

la siguiente línea permite que el teléfono se enciende cuando la aplicación está en primer plano

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

las siguientes instrucciones permiten para desactivar t él bloquea la pantalla cuando se presiona el botón de bloqueo.clase KeyguardLock desfasada y en su nivel de API 13

/*onCreate*/ 
KeyguardManager keyguardManager = (KeyguardManager)getSystemService(Activity.KEYGUARD_SERVICE); 
KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE); // Deprecated :/ 
lock.disableKeyguard(); 

Y en su manifiesto:

<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/> 
Cuestiones relacionadas