Tengo tres actividades en mi aplicación. Quiero mantener la pantalla despierta cuando está en la segunda actividad. La pantalla no debería apagarse en mi segunda actividad a menos que se presione manualmente la tecla "bloquear". Revisé muchos enlaces pero me parecen poco claros.Mantener la pantalla despierta durante toda mi actividad
Respuesta
Como se explica en el tutorial Android Keep the Screen On, puede hacerlo de varias maneras. Puede configurar el FLAG_KEEP_SCREEN_ON en la ventana de la actividad:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
Un equivalente XML para esto es añadir el atributo android:keepScreenOn="true"
a la vista raíz de la disposición de su actividad. La ventaja de establecer el indicador mediante programación es que se puede utilizar
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
cuando ya no tenga que forzar la pantalla para que permanezca encendida durante su actividad está en marcha.
Otra forma de controlar la pantalla (y otros recursos) es el uso de una cerradura raíz:
mWakeLock = ((PowerManager) getContext().getSystemService(Context.POWER_SERVICE))
.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, getClass().getName());
mWakeLock.acquire();
// screen stays on in this section
mWakeLock.release();
El manifiesto tendrá que incluir este permiso:
<uses-permission android:name="android.permission.WAKE_LOCK"/>
Sin embargo, como se discutió en el tutorial, un bloqueo de activación es más apropiado para otros casos de uso (como un servicio o una tarea en segundo plano que requiere que la CPU siga funcionando mientras la pantalla está apagada).
funciona perfecto! ¡Gracias! – user838522
La primera opción es ** mucho ** mejor ... ¡no use una cerradura de despertador!¡Requiere un permiso adicional en el manifiesto! http://stackoverflow.com/a/2134602/844882 –
@AlexLockwood - Para la aplicación de OP, el primer enfoque es mejor. Sin embargo, es un error adoptar una política de "no usar un bloqueo de activación". Un bloqueo de activación proporciona más control sobre el estado de activación de pantalla. Cuando la actividad solo requiere que la pantalla se mantenga encendida durante períodos cortos, se puede liberar el bloqueo de activación, lo que permite ahorrar batería. Con el primer enfoque, la pantalla se mantiene encendida durante todo el tiempo que la actividad está en primer plano. Además, el primer enfoque no puede ser utilizado por un Servicio que realiza trabajo en nombre de una actividad. –
Según entiendo su pregunta, creo que tiene que usar WAKE_LOCK
para ello en su aplicación.
Algo así como,
final PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
mWakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ON_AFTER_RELEASE,"");
mWakeLock.acquire();
Y en el archivo de archivo de la aplicación manifest.xml añadir esto,
<uses-permission android:name="android.permission.WAKE_LOCK" />
esto también funciona ... ¡gracias! – user838522
tratar de utilizar este
getWindow().addFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN
| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
¿Puede agregar un poco más de aclaración sobre cómo su solución resuelve el problema? Ayudará al OP a comprender mejor su solución. – KLee1
Encuentro esta solución mucho más fácil:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" // Whatever your layout is
...
android:keepScreenOn="true"> // Add this line
sólo Agregar a su actividad de diseño XML.
Eso es agradable y limpio. – OneWorld
Este código está en desuso, utilizar esto en su lugar:
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
wl.acquire();
Después de terminar con el uso, llame al (mejor solución es llamar a este método en el método OnDestroy de alguna actividad):
wl.release();
Más sobre esto en este link
[PowerManager.SCREEN_DIM_WAKE_LOCK] (http://developer.android.com/reference/android/os/PowerManager.html#SCREEN_DIM_WAKE_LOCK) está en desuso en favor de [WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON] (http://developer.android. com/reference/android/view/WindowManager.LayoutParams.html # FLAG_KEEP_SCREEN_ON) en el nivel 17 de la API. – anon
- 1. Actividad translúcida que llena toda la pantalla
- 2. Android: mantener actividad durante la animación
- 3. Android: mantener MediaPlayer ejecutándose durante la actualización de la orientación de la pantalla de actividad
- 4. ¿Cómo hacer que mi vista del indicador de actividad cubra toda la pantalla?
- 5. ¿Cómo mantener una actividad ejecutándose mientras la pantalla está apagada?
- 6. Mantener AsyncTask durante la rotación pero no en la eliminación de actividad
- 7. onTouchListener para toda la pantalla
- 8. Cómo comprobar si mi actividad es la actividad actual que se ejecuta en la pantalla
- 9. android AlarmManager no despierta teléfono
- 10. Deshabilitar toda una actividad de la acción del usuario
- 11. Mantener MediaController en la pantalla en VideoView
- 12. Cómo corregir la orientación de la pantalla al retrato de toda mi aplicación PhoneGap
- 13. Cómo realizar la actividad, sin cubrir la pantalla completa
- 14. Cómo activar la pantalla durante el bloqueo parcial de activación
- 15. Captura de pantalla durante la prueba
- 16. Cómo mantener la pantalla en modo horizontal en Android
- 17. cómo mantener siempre un menú de opciones en la pantalla
- 18. no tamaño de la pantalla Paso de la subclase Actividad
- 19. ¿Cómo obtener actividad actual en la pantalla?
- 20. La altura de Android TableLayout no ocupa toda la pantalla
- 21. ¿Cuáles son las mejores prácticas en Android para mantener los datos entre las actividades elimina/reinicia durante toda la sesión de la aplicación?
- 22. cómo ajustar toda la imagen en la pantalla como fondo de pantalla
- 23. llevar la delantera actividad de toda la aplicación que se ejecuta
- 24. Cómo mostrar la actividad cuando la pantalla está bloqueada?
- 25. Cómo regresar a la pantalla de inicio desde la actividad
- 26. ¿Cómo evitar que la pantalla de un dispositivo Android se apague durante la ejecución de una actividad?
- 27. Borrar toda la pila de historial y comenzar una nueva actividad en Android
- 28. Android ¿Cómo registrar OnTouchEvent para toda la vista de contenido principal de la actividad?
- 29. ¿Superpone una vista en toda la pantalla cuando usa UITabBarController?
- 30. Android - Teclado suave presiona el diseño de mi actividad fuera de la pantalla
Ver la respuesta detallada aquí ... http://stackoverflow.com/questions/5712849/how-do-i-keep-the-screen-on-in-my-app/24261889# 24261889 – Nepster