Ver la Versión Completa : [ SOLUCIONADO ] Saber si hay un texto determinado en pantalla
tevaadarelsol
05/07/13, 00:44:25
Bueno pues aquí sigo liado con Tasker, y ahora necesitaría saber si hay alguna forma de detectar si una aplicación determinada está mostrando un texto por pantalla.
Es una aplicación típica que tiene varios "apartados" opantallas, y me gustaría detectar si me encuentro en una concreta de ellas. También me valdría si se pudiese detectar si la aplicación se ha cargado completamente, ya que me interesa detectar la pantalla principal de la misma.
El caso es que no me vale con saber si la aplicación se está ejecutando, puesto que al iniciarla muestra una animación que varía en duración puesto que necesita conexión a internet y el tiempo de carga es variable según la red móvil etc.
Decir que uso androir 4.1.2 en un Galaxy SII con la última versión de Tasker.
Bueno, espero haberme explicado y a ver si alguien conoce cómo hacer esto.
Un saludo!
maid450
05/07/13, 08:54:44
A priori es bastante complicado, por no decir imposible, la unica posibilidad que veo es que pruebes ver cual es el valor de la variable %WIN en las distintas pantallas (esa variable contiene el titulo de la ventana actual), ya que según como esté programada la app es posible que en cada pantalla el valor cambie.
Esto lo puedes hacer lanzando una tarea que contenga muchas acciones "Esperar" con el tiempo que quieras y "Flash" seguidas encadenadas, así:
1. Esperar 30 segundos (por ejemplo)
2. Flash %WIN
3. Esperar 30 segundos (por ejemplo)
4. Flash %WIN
... así varias veces
y mientras está lanzada entres en la app y te vayas moviendo por las pantallas y veas lo que vale esa variable a cada vez.
tevaadarelsol
05/07/13, 10:48:29
Muchas gracias por tu respuesta maid450, acabo de probarlo pero no me ha funcionado. El caso es que al mostrar la variable %WIN me muestra "pepephone", que es una app que tengo instalada pero que no tiene mada que ver con la app que quiero monitorizar. De hecho, me sale pepephone en esa app, en el home, dentro de tasker... en todos sitios.
Seguiré investigando a ver si lo consigo.
Gracias de nuevo, un saludo!
maid450
06/07/13, 00:41:09
Otra cosa que puedes probar es con la acción "ejecutar consola" ejecutar este comando (marca "ejecutar como root"):
dumpsys window | grep mFocusedApp | awk '{ gsub("}", "", $4); print $4 }'
Guardas la salida en una variable y la muestras con un flash.
Haz lo mismo que antes: "ejecutar la tarea->mostrar la salida->pausa" varias veces, te vas moviendo por las pantallas de la aplicación y mira si la parte de después de la barra "/" va cambiando, eso debería ser el nombre de la pantalla en que estás.
Si eso cambia se podría mirar algo para hacer lo que quieres a partir de ahí.
Espero haberme explicado bien :-P ya nos cuentas que tal
tevaadarelsol
06/07/13, 19:25:56
Otra cosa que puedes probar es con la acción "ejecutar consola" ejecutar este comando (marca "ejecutar como root"):
dumpsys window | grep mFocusedApp | awk '{ gsub("}", "", $4); print $4 }'
Guardas la salida en una variable y la muestras con un flash.
Haz lo mismo que antes: "ejecutar la tarea->mostrar la salida->pausa" varias veces, te vas moviendo por las pantallas de la aplicación y mira si la parte de después de la barra "/" va cambiando, eso debería ser el nombre de la pantalla en que estás.
Si eso cambia se podría mirar algo para hacer lo que quieres a partir de ahí.
Espero haberme explicado bien :-P ya nos cuentas que tal
Muchas gracias maid450!
Esto sí que me ha servido y ya he conseguido lo que quería. Tras hacer lo que comentas, compruebo mediante expresiones regulares si aparece el texto de la pantalla que necesito y solucionado.
Muchas gracias de nuevo, voy a editar el primer post y ponerle al hilo la etiqueta de Solucionado.
De nuevo muchas gracias! un saludo.
ATaskREADOS
18/07/13, 01:52:29
Subido al recopilatorio.
Maid muchas gracias y enhorabuena por el excelente aporte.
:campeon:
Fdo: Mlesir
vBulletin® v3.8.1, Copyright ©2000-2026, Jelsoft Enterprises Ltd.