![]() |
|
Tasker Para hablar de todo lo relacionado con la aplicación tasker |
«
Tema Anterior
|
Siguiente tema
»
|
Herramientas |
#1
|
||||
|
||||
Oscurecer pantalla tras un tiempo de inactividad
¿Alguien sabe como crear un perfil que haga que se baje el brillo automáticamente tras un tiempo sin tocar la pantalla y poder reactivar el brillo original tocando la pantalla?
Es un perfil muy necesario para ahorrar batería en situaciones que se necesita tener la pantalla activa todo el rato ya que Android apaga la pantalla totalmente al concluir el tiempo de suspensión o bloqueo automático y es necesario reactivarlo. Gracias. |
|
#2
|
||||
|
||||
Con tasker puedes hacer eso
Enviado desde mi Redmi Note 4 mediante Tapatalk |
#3
|
|
Cita:
![]() -Un perfil que detecte el encendido y apagado de la pantalla -Una tarea asociada que haga una espera del tiempo que quieras -Una escena sobre la que puedas pulsar -Variables y acciones para guardar/recuperar el valor del brillo -Cinco minutos de tu tiempo (más lo que tardes en leer el manual de Tasker) ![]() Puedes empezar por aquí... http://www.htcmania.com/showthread.php?t=614108 Suerte ![]() |
Los siguientes 2 usuarios han agradecido a WillyWeb su comentario: | ||
#4
|
||||
|
||||
Cita:
No estoy seguro de entender lo que necesitas. A) En el primer párrafo parece que quieres un perfil que cambie el brillo de pantalla según haya pasado mucho/poco tiempo desde que se tocó la pantalla por última vez. B) En el segundo párrafo parece que quieres un perfil que mantenga la pantalla siempre encendida porque Android la apaga tras un tiempo de inactividad. Puede que necesites las dos cosas (A y B) pero supongo que habría que plantearlo como dos problemas independientes, y tratar de solucionarlo con perfiles distintos. |
Gracias de parte de: | ||
#5
|
Yo entiendo que quiere mantener la pantalla encendida permanentemente. Pasado un tiempo X sin tocar la pantalla que baje el brillo. Y que al tocar la pantalla de nuevo se recupere el brillo normal.
Ahora que lo pienso ... ya no me parece tan sencillo. ![]() |
Gracias de parte de: | ||
#6
|
||||
|
||||
#7
|
#8
|
||||
|
||||
Creo que lo he entendido mal, pensaba que te referías a hacer una escena con un porcentaje de transparencia, y poder pulsar sobre los elementos que se encuentran bajo la misma.
|
#9
|
||||
|
||||
No es más que cambiar el timeout de android para la pantalla según la app. Si es la app X pones varias horas, si es la app Z pones 30 segundos.
|
#10
|
||||
|
||||
Gracias por las respuestas, pero creo que no es sencillo. Lo primero es que no encuentro la forma de establecer una escena que reaccione al tocar la pantalla. Esto sería para recuperar el brillo original. Básicamente lo que necesito es que el brillo se baje tras un tiempo de inactividad y que se recupere al tocar la pantalla.
|
#11
|
||||
|
||||
Cita:
En todo caso, para calcular el tiempo de inactividad, creo que podrías usar la variable incorporada %WIN. Puedes hacer un perfil, que cada X tiempo guarde la variable %WIN en un array, y luego comprobar si los arrays guardados son iguales. Eso significaría que llevas X tiempo con la misma ventana en la pantalla del teléfono. Una vez transcurrido el tiempo de inactividad que necesites, con una acción de Tasker, puedes bajar el brillo de pantalla y luego mostrar una escena con un elemento transparente que ocupe toda la pantalla, que al pulsar sobre el, oculte la escena y vuelva a aumentar el brillo. Primero te he preguntado si el tiempo de inactividad, transcurre con una aplicación abierta, porque sería ideal, poder pedirle a Tasker, que obtenga el valor de %WIN, únicamente cuando esa la app abierta. |
#12
|
||||
|
||||
Cita:
|
#13
|
||||
|
||||
No necesito que haya expresamente ninguna aplicación abierta, solo que actúe en cualquier estado en que se encuentre el teléfono.
|
#14
|
||||
|
||||
Cita:
|
#15
|
||||
|
||||
Cita:
|
#16
|
|
Cita:
Me ha parecido muy interesante tu propuesta, por lo que he estado investigando un poco y creo que sí que se puede hacer lo que quieres. Hay una opción para saber si se ha tocado la pantalla utilizando el Shell y el comando getevent, aunque hay que ser Root para ello. Una vez que se tiene este dato se puede programar para que lance la actividad que queremos (en este caso bajar el brillo) pasado un tiempo determinado. A ver si tengo un hueco este fin de semana y me pongo con los perfiles y os los paso por aquí. Salu2... |
Gracias de parte de: | ||
#17
|
||||
|
||||
Cita:
|
#18
|
Xerjio, ¿probaste la acción UI de AutoInput?
Creo que hace exactamente eso. Lo que dijo Primax sobre getevent también funciona. Apostaría que AutoInput usa getevent, nada más. No veo otra forma de obtener esos datos. código getevent Mirando el código se pueden ver los argumentos válidos: Usage: %s [-t] [-n] [-s switchmask] [-S] [-v [mask]] [-d] [-p] [-i] [-l] [-q] [-c count] [-r] [device] -t: show time stamps -n: don't print newlines -s: print switch states for given bits -S: print all switch states -v: verbosity mask (errs=1, dev=2, name=4, info=8, vers=16, pos. events=32, props=64) -d: show HID descriptor, if available -p: show possible events (errs, dev, name, pos. events) -i: show all device info and possible events -l: label event types and names in plain text -q: quiet (clear verbosity mask) -c: print given number of events then exit -r: print rate events are received ¿No tienes brillo automático? Esta función no gasta batería. En una situación de mucha luminosidad obviamente el brillo es mayor y gasta más pero personalmente prefiero ahorrar en la vista y en unas gafas que en la batería. Última edición por GraphicAdventure Día 12/02/18 a las 22:17:21 |
Gracias de parte de: | ||
#19
|
|
Cita:
Mañana cuelgo los perfiles y las tareas, que hoy ya no me da tiempo. Salu2... |
Gracias de parte de: | ||
|
#20
|
Hola a todos,
Os dejo el proyecto como había prometido. Salu2... Tenemos tres perfiles: Estado Pantalla. Este perfil activa el seguimiento cuando la pantalla está encendida y lo desactiva todo y restaura el brillo a su nivel previo cuando está apagada. Perfil: Estado Pantalla (279) Estado: Estado Pantalla [ Está:Si ] Entrada: Activar Seguimiento (280) Salida: Desactivar Seguimiento (281) Captura Pulsacion. Este perfil es el que detecta una pulsación en la pantalla. Si tiene lugar la pulsación recalcula el valor de la variable %Ejecutar_tarea y vuelve a lanzar el comando para hacer el seguimiento de las pulsaciones. Cada vez que tocamos la pantalla el comando getevent escribe en la variable %Evento, por lo que cuando esta variable guarda un valor dispara nuestro perfil. Perfil: Captura Pulsacion (271) Evento: Establecer variable Variable:%Evento Entrada: GetEvent (269) Cambia brillo. Este perfil es el que se ocupa de guardar los valores actuales de brillo y los modifica según nuestras preferencias. Se activa a la hora previamente fijada desde la tarea GetEvent y siempre que no tengamos la pantalla previamente oscurecida (mediante la variable %Cambio_brillo_activo controlamos el estado). Perfil: Cambia Brillo (275) Hora: Desde %Ejecutar_tarea Hasta %Ejecutar_tarea Estado: Valor de variable [ %Cambio_brillo_activo ig 0 ] Entrada: Cambiar Brillo (276) En cuanto a las tareas, utilizamos cinco de ellas: La primera que usamos es Activar Seguimiento. Lo que hace es encender los otros dos perfiles cuando se enciende la pantalla del teléfono y arranca el seguimiento lanzando la tarea GetEvent. Activar Seguimiento (280) A1: Estado del perfil [ Nombre:Captura Pulsacion Establecer:Encendido ] A2: Estado del perfil [ Nombre:Cambia Brillo Establecer:Encendido ] A3: Realizar tarea [ Nombre:GetEvent Prioridad:%priority+1] A la tarea GetEvent llegamos siempre que toquemos la pantalla. En ese momento, si ya hemos cambiado el brillo y la pantalla está oscurecida la restaura a su estado inicial, luego coge el tiempo actual y le suma 120 segundos (con esto estamos programando el inicio de la tarea para cambiar el brillo, por lo que si no tocamos la pantalla otra vez se oscurecerá pasado un tiempo entre 1 min 1 seg y 2 minutos) y, por último, lanza de nuevo el comando para seguir controlando los toques en la pantalla. GetEvent (269) A1: Si (if) [ %Cambio_brillo_activo ig 1 ] A2: Realizar tarea [ Nombre:Restaurar Brillo Prioridad:%priority+1 ] A3: Fin si (End if) A4: Establecer variable [ Nombre:%Ejecutar_tarea A:%TIMES+120 Calcular:Encendido ] A5: Ejecutar consola [ Comando:getevent -c 1 /dev/input/event0 Cuenta atrás (segundos):0 Usar Root:Encendido Almacenar Salida En:%Evento Continuar Tarea Tras Error:Encendido ] A esta otra tarea llegamos para guardar la configuración de brillo actual y cambiarlo por el que queramos (Ojo, en mi teléfono poner el brillo a 0 no supone un problema, pero puede haber algún modelo en el que hacer esto suponga dejar la pantalla completamente a oscuras. Para evitar problemas, valdría la pena realizar un perfil que nos devuelva el brillo a su valor normal agitando el teléfono, por ejemplo, antes de probar esta tarea). Esta tarea se ejecutará a la hora prefijada en la tarea anterior, pero como Tasker no tiene en cuenta los segundos cuando se establece Hora como desencadenante de un perfil, aunque nosotros sumamos 120 segundos a la hora actual lo que realmente estamos haciendo es sumar dos minutos al reloj, sin tener en cuenta los segundos. Es decir, tanto si son las 12:00:01 como si son las 12:00:59, la tarea se ejecutará a las 12:02:00 (de ahí que antes comentara que podía tardar en ejecutarse desde 1 minuto y 1 segundo hasta 2 minutos) Cambiar Brillo (276) A1: Establecer variable [ Nombre:%Brillo_actual A:%BRIGHT ] <Guardamos estado del brillo automático> A2: Ejecutar consola [ Comando:settings get system screen_brightness_mode Cuenta atrás (segundos):0 Usar Root:Encendido Almacenar Salida En:%Estado_brillo_aut ] A3: Si (if) [ %Estado_brillo_aut ig 1 ] <Quitamos el brillo automático> A4: Ejecutar consola [ Comando:settings put system screen_brightness_mode 0 Cuenta atrás (segundos):0 Usar Root:Encendido ] A5: Fin si (End if) A6: Brillo de pantalla [ Nivel:1 Deshabilitar 'Safeguard':Encendido Ignorar nivel actual:Apagado Efecto inmediato:Apagado ] A7: Establecer variable [ Nombre:%Cambio_brillo_activo A:1] A8: Ejecutar consola [ Comando:getevent -c 1 /dev/input/event0 Cuenta atrás (segundos):0 Usar Root:Encendido Almacenar Salida En:%Evento Continuar Tarea Tras Error:Encendido ] A esta tarea llegamos si tocamos la pantalla cuando está oscurecida, para que restaure los niveles previos de brillo. Restaurar Brillo (277) A1: Brillo de pantalla [ Nivel:%Brillo_actual Deshabilitar 'Safeguard':Apagado Ignorar nivel actual:Apagado Efecto inmediato:Apagado ] A2: Ejecutar consola [ Comando:settings put system screen_brightness_mode %Estado_brillo_aut Cuenta atrás (segundos):0 Usar Root:Encendido ] A3: Establecer variable [ Nombre:%Cambio_brillo_activo A:0 ] Y por último tenemos esta otra, que se ejecuta cuando se apaga la pantalla del teléfono y que lo desactiva todo, restaurando el brillo a su nivel normal si se apagara la pantalla estando oscurecida. Desactivar Seguimiento (281) A1: Si (if) [ %Cambio_brillo_activo ig 1 ] A2: Realizar tarea [ Nombre:Restaurar Brillo Prioridad:%priority+1] A3: Fin si (End if) A4: Estado del perfil [ Nombre:Captura Pulsacion Establecer:Apagado ] A5: Estado del perfil [ Nombre:Cambia Brillo Establecer:Apagado ] Para que el comando getevent funcione, previamente hay que verificar en cada teléfono cuál es el identificador del evento que controla la pantalla. En mi caso es event0, pero no tiene porqué ser así en otros modelos. Para verlo hay que crear una tarea en Tasker con el comando “getevent –p”, con Root activado y con salida a una variable, por ejemplo %SalidaGetEvent, para ver cuál es el identificador en el teléfono de cada uno. En el mío aparece como event0 name: “atmel_mxt_ts_T100_touchscreen” |
Los siguientes 4 usuarios han agradecido a _primax su comentario: | ||
Respuesta |
![]() |
||||||
|
«
Tema Anterior
|
Siguiente tema
»
Herramientas | |
|
|
Hora actual: 11:54:29 (GMT +2)
HTCMania: líderes desde el 2007