jueves, 20 de diciembre de 2012




Si te interesa que tu Android vaya leyendo los mensajes de Whatsapp usando TTS, puedes seguir esta guía. Esta hecha para usuarios con experiencia en Android y que hayan usado anteriormente la aplicación Tasker. 

Prerequisitos: 
1) Ser Root
2) Tasker instalado (es de pago). Link Google Play
3) Secure Settings con el Helper Instalado : Link Google Play
4) Terminal Emulator (opcional, solo si no están seguros de tener SQLite) : Link Google Play
4) SQLite (algunos teléfonos lo tienen pre-instalado) : Link Google Play
5) Descargar el XML de tasker que permite leer los mensajes(*): Link Dropbox
6) Activar los servicios de Accesibilidad de Tasker (Configuración del teléfono / Accesibilidad/Tasker)

(*) Ojo, esta tarea no la programé yo. La tomé del siguiente foro y le cambié la última instrucción (Flash), que mostraba el mensaje de Whatsapp en la pantalla y lo sustituí por la instrucción SAY (Fuente Original)

Pasos:
1) Si no estan seguros de tener SQlite instalado, pueden abrir el emulador y transcribir la siguiente instrucción, que consiste en seleccionar el último mensaje de la base de datos de Whatsapp. Como pueden ver, es simple SQL:

sqlite3 /data/data/com.whatsapp/databases/msgstore.db "select data from messages WHERE key_from_me='0' ORDER BY _id DESC LIMIT 1;"

Si responde sh: sqlite3: not found , es porque no lo tienen y deben instalarlo.





Si responde con el texto del último mensaje de whatsapp, entonces obvien este paso:
Seleccionan Install, les pedirá permiso root y lo instalará. Pueden verlo en el Log.



2) Verifiquen que Secure Settings tenga el Helper instalado:


3) Copien el Get_Whatsapp_Details.tsk.xml en la carpeta Tasker/Tasks del teléfono

4) En Tasker, dejan presionada la pestaña Tasks / Import  y seleccionan la tarea Get_Whatsapp_Details:


5) Configuran un profile que dispare la tarea, en este caso, tengo configurado, que cuando llegue una Notificación de Whatsapp, se dispare la tarea Get Whatsapp Details


6) Como evito que se lean los mensajes todo el tiempo?, a través de la variable %CAR_MODE . Tengo otro proceso que la coloca en 0 cuando no quiero que esté activa y 1 cuando quiero activar. Acidionalmente, pueden condicionar que se lean los mensajes sólo cuando la pantalla esté apagada.

Con esto debería funcionar todo. Espero no haber obviado algún paso importante. Cualquier duda me la hacen saber por twitter (@AntonioJoJoJo)

Si alguno quiere que genere una aplicación con esta tarea, avíseme y trataré de generarla. Lo único, es que se mantienen todos los pre-requisitos. Solo se ahorrarían comprar Tasker y configurarlo. 


Saludos,












14 comentarios:

  1. Hola!. Muy interesante tu aporte. Te cuento que intenté ejecutar la tarea del XML que dejaste, pero fué imposible. Ni siquiera lo carga como tarea. Un dato es que tengo el Tasker v1.0.21u2 y el XML que vos modificaste es para otra versión. Creo que eso puede haber sido. Tenés idea si será factible editarlo de tal forma que pueda ejecutarse en mi versión de Tasker? Gracias desde ya!

    ResponderEliminar
    Respuestas
    1. estas usando una version muy vieja, te recomiendo actualizar a la ultima disponible en Google Play 1.3.3xx ..otra opcion es que uses mi App Whatsapp Mentions (hecha usando parte de el XML publicado aca y compilada con Tasker Factory) para que te lea los Whatsapp . Link para JellyBean : http://www.mediafire.com/download.php?yfnfjionqhcs9ls

      Saludos

      Eliminar
  2. Hola Antonio, gracias por responder tan rápidamente. Acabo de instalar la app que me pasaste. Ya he hecho un par de pruebas y funcionó de mil maravillas!! Felicitaciones por tu desarrollo y muchas gracias por compartirlo tan generosamente!! Ahora una pequeña consulta, como hago para activar/desactivar esta app con Tasker?

    ResponderEliminar
    Respuestas
    1. Hola Maxi, no se me hubiese ocurrido activar/desactivar esta app usando Tasker.. Buena pregunta.. No estoy seguro si se pueda hacer.. Tal vez tendría que hacer una app tipo Switch, que se active cuando la ejecutas una vez y se desactive cuando la vuelves a ejecutar... Por ahora no se me ocurre nada adicional, pero pensaré en ello. Saludos

      Eliminar
    2. Listo.. Ya se me ocurrió Algo.. Jeje fue rápido.. Esta app solo funciona con el servicio de Accesibilidad, así que lo que puedes hacer es activar o desactivar el servicio automáticamente usando tasker + el plug-in de Secure Settings.. Muy fácil..

      Eliminar
    3. Jajaja, tiempo aproximado de solución... 3 minutos! Buen promedio! Pero tiene un pequeño detalle, Tasker utiliza también el servicio de Accesibilidad, por lo que creo generaría algún fallo desactivarlo. Yo creía que se podría ejecutar un "intento de acción" con un comando que active o desactive la app...

      Eliminar
    4. Hola Maxi, el servicio de Accesibilidad puede ser activado/desactivado por cada Aplicación.. Tasker tiene uno y mi App otro separado..

      Eliminar
    5. Voy a probar y cuento mi experiencia para los que la necesiten. Antonio, muchas gracias por estar tan atento. Espero que no sea muy difícil programar esta tarea...

      Eliminar
    6. Hice lo que me sugeriste. Armé una tarea que, mediante el plugin de Secure me activara/desactivara la accesibilidad de Whatsapp_Mentions.apk y, por lo menos en las 3 pruebas que hice, funcionó excelentemente! Inclusive vinculé dicha tarea a "NFC Task Launcher", así que cuando llego al auto paso el teléfono por la etiqueta NFC y, entre otras cosas, se me activa el tu lector de mjes de Whatsapp. Creo que sería muy útil que subieras tu app al Store de Google para que otros la puedan aprovechar.
      Estoy muy agradecido por tu ayuda y generosidad, contá con mi humilde ayuda para lo que necesites. Otra vez, gracias! Saludos! Maxi

      Eliminar
    7. Excelente! Espero más adelante subir mis apps a la Store.. Pero tengo que documentarme muy bien cuales son las condiciones para publicar apps. Sobretodo con las que requieren Root.

      Eliminar
  3. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  4. Hola Antonio. Vuelvo por una consulta. Tenés idea si existe alguna forma de que, mediante Tasker, podamos configurar una respuesta automática en whatsapp? Es decir, que nos llegue un mje (whatsapp) mientras vamos manejando y automáticamente nuestro teléfono envíe un texto. Para los SMS lo pude configurar así, pero se complicó con esta bendita aplicación. Gracias desde ya!

    ResponderEliminar
  5. Hola Maxi, creo que no hay forma de hacerlo.. estuve mucho tiempo buscando como responder mensajes de Whatsapp usando Tasker y no conseguí un método que valga la pena..

    Creo que ellos lo han hecho difícil para que no venga alguien a enviar SPAM de forma masiva..

    Lo más cerca que llegué, fue configurar un task que envía mensajes enviando secuencias de teclas.. Pero era tan lento que no valía la pena..

    Si consigues una forma me gustaría que la compartieras..

    Yo también tengo un Profile que activo con una etiqueta NFC en mi carro, y lee y responde los SMS automágicamente.. También lee los WhatsApp y me gustaría que los respondiera..

    ResponderEliminar
    Respuestas
    1. Lo único q encontré hasta ahora es una apk "Voice for Whatsapp Full" la cual lee los mensajes y abre el micrófono para que le dictemos una respuesta. Pero la encuentro algo inestable, por lo menos en mi teléfono. Si averiguo otra cosa, aviso por acá.

      Eliminar