¿Cómo prevenir el bloqueo automático de pantalla en android por código?

En mi aplicación hay un proceso de carga de largo, y si los dispositivos pone en el bloqueo de pantalla, mi proceso se detiene por alguna razón.

¿Cómo puedo evitar que el dispositivo bloquee automáticamente la pantalla?

usted tiene que declarar este use-permission en AndroidManifest:

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

Y en su código Actividad:

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

Sólo recuerde liberar este bloqueo cuando su aplicación se detenga o se destruya haciendo esto:

 wakeLock.release(); 

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

Otra forma de mantener la pantalla bloqueada sin tener que solicitar el permiso en el manifiest es:

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

¿Está haciendo su proceso de carga largo en el hilo de interfaz de usuario? Algo no parece correcto – si el proceso es tan largo que el bloqueo de pantalla y el tiempo de espera termina su proceso, tal vez tiene que ir en un servicio de fondo.

 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

Sigue este enlace

una opción interesante que no se mencionó todavía es la

 View#setKeepScreenOn(boolean onOff) 

método. Esto se puede utilizar de forma dinámica en cualquier momento durante el tiempo de ejecución de la aplicación, por ejemplo, para configurar el modo de pantalla dependiendo del estado de la aplicación

La siguiente línea le permite al teléfono estar en ON cuando la aplicación esté en primer plano

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

Las siguientes instrucciones nos permiten desactivar la pantalla de bloqueo cuando se pulsa el botón de bloqueo. La clase KeyguardLock fue obsoleta en el nivel 13 de API

 /*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"/> 

Vaya con el código de la guardia de la llave que trabaja perfectamente,

Simplemente pegue el código en el método onCreate en su archivo mainactivity y el permiso en el archivo de manifiesto android

  • ¿Cómo saber el ancho más pequeño (sw) del dispositivo android?
  • ¿De dónde hace el meta de android.max_aspect hacer la diferencia?
  • Imagen borrosa en otro dispositivo
  • Android no está recolectando el archivo derecha dimens.xml de la carpeta de valores
  • ¿Por qué 'xxhdpi' no está permitido el valor del parámetro screenDensity en Manifest
  • Creación de la aplicación de soporte para varias pantallas Android
  • ¿Necesito 14 diseños diferentes para admitir todos los dispositivos Android?
  • Cómo diseñar diseño para S4
  • Disposición de Android con vista a la derecha que ocupa un espacio preestablecido y visualiza en las escalas de la izquierda para llenar el resto de la pantalla hasta cierto límite
  • Cómo definir el nombre de la carpeta para varias resoluciones de pantalla (conflicto entre Nexus 10 y Galaxy Tab 10)?
  • Resoluciones de pantalla de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.