5 votos

Apagar la pantalla sin que Android se duerma

¿Hay alguna forma de apagar rápidamente la pantalla sin hacer que Android se duerma?

Por ejemplo, a veces me gusta utilizar la aplicación Calm cuando duermo. Pero mantiene la pantalla encendida todo el tiempo. Cuando solo uso esa aplicación durante 10 minutos, es genial que mantenga la pantalla encendida; pero si estoy durmiendo durante horas, me gustaría que la aplicación siguiera funcionando (reproduciendo sonidos) y apagara la pantalla.

¿Cómo se puede hacer esto?

3 votos

Para ello, la aplicación necesita crear explícitamente un llamado "Wakelock" que impida a Android poner la CPU en Deep Sleep y mantenga todo el sistema (incluida tu aplicación) en funcionamiento.

0 votos

@GiantTree Cierto. ¿Hay alguna manera de rápidamente ¿activar/desactivar eso para todas las aplicaciones o para una aplicación específica?

0 votos

Según la información disponible, una aplicación tiene que pedir este tipo de bloqueo por sí misma. De lo contrario, Android puede matar una aplicación si se ejecuta en segundo plano sin un bloqueo.

7voto

jrodatus Puntos 141

El mérito es de Firelord por el método básico. Aquí hay un shell script de retardo de tiempo que apaga la luz de fondo de mi dispositivo, y aparentemente de otros también.

Crea un archivo llamado "lcdoff" y copia lo siguiente en él:

#!/system/bin/sh
if [ -z "$1" ]; then
    echo "usage: `basename $0` delay"
    exit
fi
su -c 'echo getsu > /dev/null'
echo "Tap power button 2x quickly to restore"
sleep $1
su -c 'echo 0 > /sys/class/leds/lcd-backlight/brightness'

Asegúrate:

  • El dispositivo está rooteado.
  • Los permisos de script se establecen como ejecutables, por ejemplo chmod 755 lcdoff .
  • El script se encuentra en /system/bin (los scripts no pueden ser ejecutados desde /storage ).

A continuación, abra una aplicación de terminal e introduzca lcdoff 10 , para apagar la pantalla tras un retardo de 10 segundos, lcdoff 30 para un retraso de 30 segundos, etc. Para garantizar que el procesador permanezca encendido, basta con activar la opción Opción para desarrolladores de Android "Stay Awake" . Editar: Stay Awake sólo funciona mientras está enchufado a una fuente de alimentación -- ver esta respuesta para una alternativa.

Si no quieres escribir el comando en un terminal, puedes lanzar el script como una acción personalizada en:

  • Comandante total
  • Tasker
  • Adiciones de Xposed
  • su aplicación de elección

1 votos

Para no volver a chocar con mi respuesta, añadiré aquí el script de reserva que uso: if [ "$1" == "0" ]; then su -c 'echo sbylock >/sys/power/wake_unlock'; elif [ "$1" == "1" ]; then su -c 'echo sbylock >/sys/power/wake_lock'; lcdoff 0; else echo "usage: $(basename $0) 0|1"; fi

3voto

Helios210 Puntos 21

Tuve algunos problemas con la respuesta aceptada, ya que no estoy muy familiarizado con el shell scripting en Android/Unix/Linux, así que pensé en añadir mi experiencia aquí para cualquier persona en un barco similar.

Para que esto funcione con Tasker o similar la línea que necesitas es:

echo 0 > /sys/class/leds/lcd-backlight/brightness

Para tasker pon esto en el campo 'command' con 'Use Root' activado, funciona como un encanto. Para desactivar simplemente cambiar el cero por un 1, ergo:

echo 1 > /sys/class/leds/lcd-backlight/brightness

o bloquear y desbloquear el dispositivo.

Así que para responder a su pregunta sobre la alternancia rápida de este comportamiento. Asigna cada uno de los comandos anteriores a una tarea de Tasker, entonces puedes hacer uso de la nueva intercepción de pulsación larga en la última versión de Tasker para activar y desactivar la pantalla sin poner el dispositivo en reposo. También puedes asignar el comando a un perfil que se active cuando se cumplan tus condiciones.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X