Aplicaciones de Android, que se comunican con un dispositivo conectado al puerto USB

Estoy pensando en una aplicación de Android (posiblemente con un dispositivo físico de acompañamiento), y estoy tratando de averiguar si esto es algo factible.

1) Digamos que conecto mi Android a mi PC. ¿Sería posible que una aplicación instalada en la PC se comunique con una aplicación que se ejecuta en el teléfono celular? Solo necesito un intercambio de datos muy simplista, incluso puede ser unidireccional (solo datos enviados desde el teléfono celular a la aplicación de escucha en la PC, cada vez que el teléfono móvil lo desee, no necesito ningún dato enviado desde la PC al teléfono )

Cuando lo enchufo, el teléfono me da 4 opciones (carga, unidad de disco, sincronización de HTC, anclaje a red), lo que me hace pensar que esto no es factible, pero que todavía vale la pena.

2) ¿Sería posible que una aplicación en la PC pudiera hablar con una aplicación en el teléfono de otra forma? (Wi-Fi, bluetooth, etc.) Supongo que no en wi-fi ya que ninguna de las partes tiene la IP de la otra (y quiero que esto funcione, sin tener que ingresar direcciones IP de forma manual todo el tiempo).

3) Si hago un dispositivo que está conectado al pequeño puerto USB en la parte inferior del teléfono (y digamos que este es un dispositivo mágico que puede hacer cualquier cosa, no me preocupo por esos detalles, siempre y cuando sea posible). ¿Puedo tener una aplicación de Android para hablar con ese dispositivo?

4) Cualquier otra idea para hacer que el teléfono hable con un “dispositivo” que hago o con una aplicación en la PC es más que bienvenido. Ir a “través de la web” podría ser una opción (aunque creo que debería haber un servidor central que posea como intermediario). Pero preferiría que la comunicación fuera directa entre los dos dispositivos.

El mundo ha cambiado desde que se hizo esta pregunta, y la respuesta ahora es el Kit de desarrollo de accesorios abiertos de Android . No solucionará el problema de los dispositivos USB existentes, pero permite crear nuevos dispositivos que pueden usar la conexión USB de un dispositivo Android.

La comunicación entre dispositivos Android y PC es posible de una manera más.

A través de la conexión ADB a través de USB.

  1. Reenvío de puertos.
  2. Servidor Socket JAVA Program.
  3. Aplicación de Android Client Socket

A través de esta aplicación se puede comunicar con nuestro progtwig JAVA que se ejecuta en PC.

http://www.anothem.net/archives/2010/10/15/android-usb-connection-to-pc/

Editar: Tenga en cuenta que esta respuesta es anterior a la disponibilidad del host USB de Android y las API y el soporte de accesorios encontrados en muchos dispositivos lanzados después de su creación.

Si enciendes la depuración del usb en el teléfono y tienes algo derivado de la herramienta adb del sdk (código abierto) en la PC, pueden comunicarse. La PC tendrá que iniciar las comunicaciones, pero dentro de las sesiones puede ser principalmente bidireccional o incluso principalmente de dispositivo a PC. Consulte developer.android.com sobre el shell adb y el reenvío de puertos. Raíz no requerida.

La gente está usando bluetooth para hablar con los controladores integrados de Arduino.

Con root he hecho que mi teléfono actúe como un host usb, pero fue un dolor ya que tuve que usar wifi para obtener un shell de depuración ya que el usb estaba ocupado.

Algunos teléfonos tienen un puerto en serie de bajo voltaje en un conector extusb o líneas de audio, pero se necesitaría un controlador de nivel y root para usarlo.

Otra idea en la que había estado pensando, hacer un módem de software en el conector para auriculares, aparentemente se ha hecho tanto para Android como para iPhone por alguien en Japón. Esto no debería requerir root

Para la comunicación a través de usb / wlan eche un vistazo a este proyecto: http://code.google.com/p/android-notifier/