![]() |
|
| Tasker Para hablar de todo lo relacionado con la aplicación tasker |
«
Tema Anterior
|
Siguiente tema
»
|
|
Herramientas |
|
#1
|
||||
|
||||
|
detener perfil cuando se activa una app
Hola,
estoy buscando la manera de detener un perfil activo en función de la activación de una aplicación. Me explico: Tengo un perfil en la tablet que en función del sensor de movimiento de la cámara delantera, enciende la pantalla y ejecuta una serie de aplicaciones en serie, durante un tiempo, y luego se vuelve a apagar hasta detectar un nuevo movimiento. El caso es que ahora necesito que cuando se reciba una llamada desde el video portero ip (que funicona con la app wifibell), se detenga el perfil para poder ver y usar el intercomunicador del videoportero. De manera que cuando se cuelgue la "llamada" se reinicie el perfil. Este es mi perfil actual: Código:
Perfil: Tabet Domotica (11) Evento: Intent Recibido [ Acción:org.motion.detector.ACTION_GLOBAL_BROADCAST Categ.:None Categ.:None Esquema:* Tipo Mime:* ] Entrada: Motion Detector (10) A1: Enviar Intent [ Acción:org.motion.detector.ACTION_DETECTOR_OFF Categ.:None Tipo Mime: Datos: Extra: Extra: Extra: Paquete: Clase: Objetivo:Broadcast Receiver ] A2: Secure Settings [ Configuración:Screen & Keyboard Lights On Manual - On Paquete:com.intangibleobject.securesettings.plugin Nombre:Secure Settings Cuenta atrás (segundos):0 ] A3: Esperar [ MS:500 Segundos:0 Minutos:0 Horas:0 Días:0 ] A4: Cargar aplicación [ Aplicación:tinyCam Monitor Datos: Excluir de aplics. recientes:Apagado Always Start New Copy:Apagado ] A5: Esperar [ MS:0 Segundos:15 Minutos:0 Horas:0 Días:0 ] A6: Cargar aplicación [ Aplicación:ImperiHome Pro Datos: Excluir de aplics. recientes:Apagado Always Start New Copy:Apagado ] A7: Esperar [ MS:0 Segundos:0 Minutos:2 Horas:0 Días:0 ] A8: Enviar Intent [ Acción:org.motion.detector.ACTION_DETECTOR_ON Categ.:None Tipo Mime: Datos: Extra: Extra: Extra: Paquete: Clase: Objetivo:Broadcast Receiver ] A9: Esperar [ MS:500 Segundos:0 Minutos:0 Horas:0 Días:0 ] A10: Secure Settings [ Configuración:Lock Device Paquete:com.intangibleobject.securesettings.plugin Nombre:Secure Settings Cuenta atrás (segundos):0 ] Espero vuestra ayuda, por favor!
|
|
|
|
#2
|
||||
|
||||
|
Buenas, este método ya se ha comentado en otros hilos y se puede extrapolar a muchos tipos de tareas, se trata de crear una variable en función de si una app se está ejecutando o no.
De esta forma Tasker NO detecta si la aplicación está abierta en segundo plano. Para eso el compañero maid450 redactó un excelente tutorial donde explica como hacerlo. http://www.htcmania.com/showthread.php?t=604736 Bueno, independientemente de que método acabes usando, el fin es que cuando la app que tu quieras este ejecutándose, la variable valga 1 y cuando no se esté ejecutando esa misma variable valga 0. De está forma puedes utilizar dicho valor como un condicional (IF) en cualquiera de tus tareas o perfiles. Obviamente los valores pueden ser 1 y 0, On y Off etc, eso ya a gusto de cada uno, pero es aconsejable utilizar valores numéricos para poder hacer operaciones matemáticas en caso de que hiciera falta. Ejemplo: Perfil: App Calculadora On - Off Tarea Entrada: App Calculadora On A1: Establecer variable [ Nombre:%AppCalculadora A:1 Calcular:Apagado A\xf1adir:Apagado ] Tarea Salida: App Calculadora Off A1: Establecer variable [ Nombre:%AppCalculadora A:0 Calcular:Apagado A\xf1adir:Apagado ] |
|
#3
|
||||
|
||||
|
Cita:
He intentado modificar mi perfil, pero no funciona ![]() Lo que he hecho ha sido añadir a la tarea existente la generación de la variable 0/2 en función de si la app está o no funcionando, y añadir una tarea if/else Creo que la tarea está bien, pero el perfil es lo que falla. Os lo adjunto por si veis donde está el fallo, o como puedo corregirlo. Código:
Perfil: Tabet Domotica (11) Evento: Intent Recibido [ Acción:org.motion.detector.ACTION_GLOBAL_BROADCAST Categ.:None Categ.:None Esquema:* Tipo Mime:* ] Entrada: Motion Detector (10) A1: Ejecutar consola [ Comando:cat/proc/$(pgrep object.zhdbzx.client$)/oom_adj Cuenta atrás (segundos):0 Usar Root:Apagado Almacenar Salida En:%salida Almacenar Errores En: Almacenar Resultado en: ] A2: Si (if) [ %salida ~ 2 ] A3: Enviar Intent [ Acción:org.motion.detector.ACTION_DETECTOR_OFF Categ.:None Tipo Mime: Datos: Extra: Extra: Extra: Paquete: Clase: Objetivo:Broadcast Receiver ] A4: Secure Settings [ Configuración:Screen & Keyboard Lights On Manual - On Paquete:com.intangibleobject.securesettings.plugin Nombre:Secure Settings Cuenta atrás (segundos):0 ] A5: Esperar [ MS:500 Segundos:0 Minutos:0 Horas:0 Días:0 ] A6: Cargar aplicación [ Aplicación:tinyCam Monitor Datos: Excluir de aplics. recientes:Apagado Always Start New Copy:Apagado ] A7: Esperar [ MS:0 Segundos:15 Minutos:0 Horas:0 Días:0 ] A8: Cargar aplicación [ Aplicación:ImperiHome Pro Datos: Excluir de aplics. recientes:Apagado Always Start New Copy:Apagado ] A9: Esperar [ MS:0 Segundos:0 Minutos:2 Horas:0 Días:0 ] A10: Enviar Intent [ Acción:org.motion.detector.ACTION_DETECTOR_ON Categ.:None Tipo Mime: Datos: Extra: Extra: Extra: Paquete: Clase: Objetivo:Broadcast Receiver ] A11: Esperar [ MS:500 Segundos:0 Minutos:0 Horas:0 Días:0 ] A12: Secure Settings [ Configuración:Lock Device Paquete:com.intangibleobject.securesettings.plugin Nombre:Secure Settings Cuenta atrás (segundos):0 ] A13: Else Si (if) [ %salida ~ 0 ] |
|
#4
|
||||
|
||||
|
Cita:
Hay varias formas de hacerlo, por ejemplo. Tu perfil inicial que enciende la pantalla y ejecuta una serie de aplicaciones, no tienes por que modificarlo. Lo que quieres es, que ese perfil se apague cuando una aplicación en concreto este abierta. Pues lo dicho, dejas tu perfil tal cual y creas uno como el que te he descrito al inicio. Al hacerlo, ya sabemos que cuando la aplicación esta abierta su valor es 1 y cuando esta cerrada su valor es 0. Pues ahora puedes crear un nuevo Perfil / Evento que cuya tarea de entrada sea Tasker/Estado de perfil/Apagado. Si quieres que cuando se cierre se vuelva a activar el perfil, creas una tarea de salida a la inversa, que cuando dicha variable valga 1 cambie el estado del perfil a encendido. Todo esto se podría simplificar, pero bueno, así se entiende bien como crear y utilizar una variable global. |
|
#5
|
||||
|
||||
|
Cita:
El ejecutar el comando cat /proc/$(pgrep jackpal.androidterm$)/oom_adj con el nombre de mi aplicación me sale error: cat/proc/oom_adj not found.... Antes también me salía error de: pgrep not found, pero investigando llegué a la conclusión que me faltaba el busybox. Lo instalé y eso se solucionó. Última edición por dj_janker Día 01/09/15 a las 17:29:50 |
|
#6
|
||||
|
||||
|
Cita:
No obstante, en tu caso ¿te es imprescindible saber si la app se está ejecutando en segundo plano? porque si no fuera así, con el perfil que te puse en el inicio te valdría. Pero ya sabes que solo detecta si la aplicación esta abierta en primer plano. Un saludo. |
|
#7
|
|
El comando cat te funciona entonces o no? Si es que no puedes poner todo el texto del fallo que te da?
Enviado desde mi T1-701u mediante Tapatalk |
| Respuesta |
Estás aquí
|
||||||
|
||||||
«
Tema Anterior
|
Siguiente tema
»
| Herramientas | |
|
|
Hora actual: 13:45:38 (GMT +1)
HTCMania: líderes desde el 2007







