jueves, 30 de septiembre de 2010

Python en Android + script de regalo SMS/GPS/SMS

Teniendo la necesidad de hacer algo con mí Motorola Milestone (Droid) lo primero que pensé fue instalar Python, para eso me valí del proyecto “Scripting Layer for Android brings scripting languages to Android” (SL4A).

Este post se divide en dos parte, la primera es la fase de instalación de Python y la segunda es un script realizado para detectar la posición actual del móvil representada en GoogleMaps.

Instalación de Python


Todo el proceso de instalación a continuación es realizado desde el teléfono:

Presionar la tecla menu configuración->Aplicaciones , seleccionar fuentes desconocidas.



Abrir el navegador y colocar la dirección http://code.google.com/p/android-scripting/

Descargar el fichero python_for_android_r1.apk y sl4a_r2.apk



Al terminar las descargas tenemos las siguiente pantalla en el historial de descargas del navegador



Instalar Python presionando sobre  python_for_android_r1.apk



Luego presionar sobre el boton install



Cuando termine el proceso de instalación aparece



Ya tenemos Python instalado, ahora vamos a instalar el SL4A, abrimos el navegador presionamos la tecla Menu->Mas->Descargas y nuevamente tendremos la pantalla donde están las descargas.



Ahora presionamos sobre el paquete sl4a_r2.apk para instalarlo, y se muestra



Presionar el botón Instalar, en este momento ya tendremos instalas las dos aplicaciones, el Python y el SL4A



Ejecutar SL4A, y veremos una pantalla con algunos scripts de ejemplo, presionamos sobre el script hello_world.py y parecerá un cuadro de opciones (1. ejecutar y visualizar resultados en consola, 2. ejecutar, 3. editar, 4. almacenar, 5. eliminar)



Presionar sobre la opción 1. ejecutar y visualizar resultados en consola, se mostrara.



En este momento ya hemos ejecutado un script de Python en nuestro Android, puedes también crear tus propios scripts presionando la tecla Menu->Add





También puedes correr la consola de python presionando Menu->View->Interpretes


El regalo - Script SMS/GPS/SMS


Se trata de un script gpaox.py que he desarrollado y trabaja de la siguiente forma:

  • Se ejecuta como un demonio (servicio) el cual evalúa cada 30 segundos para verificar si ha llegando un nuevo mensaje que no ha sido leído y que contenga únicamente la palabra Gps

  • Busca la posición actual del móvil utilizando el Gps ó la red celular para conseguir las coordenadas, esta operación dura un máximo de 5 minutos, en caso de no conseguir las coordenadas devuelve la ultima coordenada conocida.

  • Construye un mensaje de texto SMS que contiene una Url de GoogleMaps con las coordenadas

  • Envía el mensaje al móvil que hizo la solicitud.

  • Marca el mensaje de solicitud recibida como leído.

  • Muestra el siguiente mensaje en la consola "Enviado a: 0416******" , donde los * son números que componen el numero telefónico que realizo la petición.

  • Continua escuchando como demonio (servicio) para nuevas solicitudes.

Para instalar el script en su móvil siga estos pasos:

  • Descargar el script aquí

  • Conectar su móvil al computador por el cable USB y copiar el script en el directorio /sdcard/sl4a/scripts

  • Luego usted podrá observar que aparece el script gpaox.py en la lista de scripts de SL4A



  • En este momento ya puede ejecutar el script como lo hizo anteriormente con el script de ejemplo hello_world.py

A continuación un vídeo que muestra el funcionamiento del script.



Vídeo original Theora/Vorbis (ogg) 40Mb -> descargar aquí


Una imagen del mapa en GoogleMaps



Esta es una base para mostrar que es posible hacer cosas bastante interesantes con Python en la plataforma de Android.

10 comentarios:

  1. Antonio Araujo Brettoctubre 05, 2010 9:50 a. m.

    Que buena contribución Alexander!. No tengo Android pero realmente se ve interesante.

    Saludos

    Antonio

    ResponderEliminar
  2. Hola Antonio!, no te preocupes si quieres empezar a probar puedes trabajar con el SDK de Android -> http://developer.android.com/sdk/index.html

    ResponderEliminar
  3. [...] el Post Python en Android + script de regalo SMS/GPS/SMS he empaquetado el scrip SMS/GPS/SMS en una aplicación llamada smslocation-beta-0.0.1.apk para [...]

    ResponderEliminar
  4. muy bueno el script barbaro ! exelente tutorial ! ahora una pregunta o acotacion ... con que necesidad el movil q te envia el mensaje (la palabra gps) va a qerer saber su posicion ? ... para mi lo ideal seria q mi mmovil (el que recibe la peticion GPS) me diga o me mande un SMS con la posicion del movil emisor ... se podra ? o es mucho pedir ? gracias !

    ResponderEliminar
  5. Seguro!!!, el ejemplo se realiza desde el mismo móvil, pero si realizas la petición desde otro móvil le será enviado el SMS tal cual.

    ResponderEliminar
  6. si he realizado la prueba con otro movil ... el movil "A" envia la palabra GPS a mi movil "B" .. se ejecuta el script pero el sms con las coordenadas se lo envia al movil "A" ... yo quiero que el sms me lo envie a mi .. osea el movil "B" .. eso qiero saber si se puede hacer ?

    ResponderEliminar
  7. si he realizado la prueba con otro movil … el movil “A” envia la palabra GPS a mi movil “B” .. se ejecuta el script pero el sms con las coordenadas se lo envia al movil “A” … yo quiero que el sms me lo envie a mi .. osea el movil “B” .. eso qiero saber si se puede hacer ?

    ResponderEliminar
  8. Muy bueno el post, la semana pasada compre un Gps Traker para instalarlo en mi moto , pero mi experiencia no fue buena, ya que después de un par de horas el Gps perdía la señal y no respondía los mensajes..... Piensas tu que este sistema sea mas confiable que el mismo Gps Traker? Cual es el teléfono mas básico para instalar este script? Muchas gracias ir tu ayuda

    ResponderEliminar
  9. Puedes buscar alguna actualización de firmware para tu GPS o verificar que no tenga algún daño ya que no es normal que el mismo pierda la señal. Con respecto al script si es o no confiable debes verificarlo tu mismo a ver si cumple tus expectativas, el script necesita cualquier teléfono que tenga GPS y tenga como sistema operativo Android.

    ResponderEliminar
  10. muy buena app es justo lo q estaba buscando!!! gracias!

    ResponderEliminar