¿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?
- Los dibujos se leen siempre desde la carpeta mdpi, independientemente del tamaño de la pantalla
- Diferencia entre diseño y diseño-400dp-land
- Carpetas de tamaño de diseño de estudio de Android
- Android - técnicas comunes para escalar diseños de pantalla
- Configuración de carpeta de dibujar para utilizar para diferentes resoluciones
- Android "Pantallas de soporte" no funciona?
- cómo redimensionar automáticamente, compatible, ajustar el tamaño de pantalla para todos los dispositivos android
- Pantallas de soporte en el archivo de manifiesto
- Soporte de pantalla de manifiesto Entrada sólo para dispositivos y sólo para tabletas
- ¿Cómo hacer que mi aplicación se vea igual en todos los dispositivos?
- Restringir la instalación de la aplicación en Tablets
- ¿Cómo usar RecyclerView de acuerdo con la pantalla del dispositivo?
- ¿Factor de escala para xxhdpi android?
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
- Uso de? Android: attr / in aplicaciones compatibles hacia atrás
- Obtener el nombre de la ruta absoluta, subcadena de la última barra diagonal, java android