sábado 28 de enero de 2012

Remote widget control para Android

 Ya son norma general en un teclado ciertas teclas multimedia para, por ejemplo, saltar esa canción que aborreces.



 Pero no siempre estamos sentados delante del escritorio. Ya estemos sentados en un sofá, tumbados en la cama leyendo, escribiendo o jugando, este control a distancia os podrá ser útil.


Características 

 La característica principal de este control es su forma de widget. En el market podemos encontrar cientos de aplicaciones para el control remoto, pero quería una muy básica y directa.

 Los controles son: reproducir/pausar, siguiente y anterior, y se pueden usar para cualquier reproductor. Para poder controlar un "media center" están los botones de cursores, enter, retroceso y menú contextual. Estos controles son suficientes para interaccionar con cualquier reproductor o "media center".

 La interacción entre la aplicación y el ordenador se lleva a cabo por medio de un servicio web. Se trata de una pequeña aplicación elaborada en "Python" y traducirá las solicitudes del móvil en pulsaciones de teclado.


Instalación

Los pasos a seguir son sencillos.
Primero en vuestro móvil Android, descargáis la aplicación desde aquí o ayudados por el QRcode que encontráis debajo de estas lineas.




En su configuración escribir la ip de vuestra computadora y el puerto en el cual queráis poner el cliente en la misma.


Instalación en el pc

Linux

Es necesario instalar del repositorio una aplicación que se encarga de crear las pulsaciones llamada xautomation.

   sudo apt-get install xautomation

Ahora podéis descargar el script que hará de servidor desde aquí, guardarlo donde queráis en vuestro home. Abrir "Aplicaciones de inicio" y añadir esta nueva aplicación con el nombre que queráis, en comando deberéis escribir la ruta del archivo y al principio la palabra 'python' (comprobar antes en una terminal que funciona dicho comando).



Cuando reiniciéis el sistema el servicio estará disponible.

Windows

 Aquí tenéis el servicio para Windows (ha sido probado en XP, pero aun no en 7). Finalmente esta elaborado en c++, tenia la posibilidad de utilizar parte del código de Python que elabore para Linux, pero no es frecuente tener instalado lo necesario en Windows. También lo intente por Java, pero una vez que tenia el servicio preparado, simular las pulsaciones de las teclas multimedia no era posible (tenéis aquí el código del proyecto por si en adelante pudieran hacerse dichas pulsaciones).

Pongo a disposición de vosotros el código fuente por si lo necesitarais o quisierais modificar.

Para instalarlo primero descargar el archivo server.exe y guardarlo en la carpeta que encontrareis en esta ruta (cambiando USUARIO y unidad por el vuestro):

C:\Documents and Settings\USUARIO\Menú Inicio\Programas\Inicio

Cuando reiniciéis el sistema el servicio estará disponible.


Preguntas frecuentes
  • ¿Por que un servicio web y no bluetooth?
    La respuesta son varias razones, entre consumo de energía, la situación habitual y buscar la facilidad para todos. Con cualquier lenguaje se puede hacer un servicio web de manera sencilla. Ademas permite poder ampliar las opciones del control en un futuro para comunicar entre la aplicación y el servicio en ambos sentidos de múltiples maneras.
  • Tengo el puerto ocupado, ¿puedo cambiarlo?
    La aplicación en Android tienen un campo para ello, y el servicio web de python que he propuesto puede cambiarse por el parámetro --port n (siendo n el puerto que queráis).

  • ¿Utilizo X sistema puedo hacerme un cliente?
    Si alguien quisiera hacerse un servidor propio, las llamadas desde la aplicación móvil a los servicios son: "/play","/next", "/prev", "/up", "/down", "/right", "/left", "/enter", "/menu", "/backspace".

3 comentarios:

  1. Muy interesante este tutorial, pero ¿Que tengo que hacer para configurarlo si tengo windows 7?

    Muchas gracias.

    ResponderSuprimir
    Respuestas
    1. Se necesita un servidor que haga las pulsaciones que se le demandan para Windows.
      Esta en mis planes hacer uno, pero la impaciencia al verlo funcionando en Linux me ha podido. Trataré de hacer uno cuanto antes y volveré con noticias.

      Siento que tengas que esperar.

      Suprimir
    2. Ya he dejado a disposición de todos el servicio web para Windows.
      Lo tengo algo más de una semana, pero por unas cosas u otras aun no he encontrado quien lo probara, pero debería funcionar también en Windows 7.

      Suprimir