2012-10-04 25 views
5

he encontrado varios hilos speacking sobre este tema, pero después de leerlas no tengo una idea clara acerca de mi problema.Android: Comunicación USB Android <-> dispositivo externo

Tenemos un dispositivo externo (algo así como un dispositivo TomTom, quiero decir, no es un accesorio) y queremos conectar este dispositivo a un dispositivo Android. Y queremos tener comunicación serial entre el dispositivo externo y el dispositivo Android usando una conexión USB. (En este momento tenemos comunicación entre el dispositivo externo y otros dispositivos no Android que utilizan la interfaz RS232, pero el dispositivo externo puede manejar la comunicación utilizando un cable usb)

Según he leído, tenemos compatibilidad con USB API desde 3.1.

podemos desarrollar una aplicación para Android que se comunica con nuestro dispositivo externo mediante un cable USB? Quiero decir, enviar datos al dispositivo y recibir datos del dispositivo, en ambos sentidos, queremos usar el dispositivo Android como una "pantalla".

Muchas gracias de antemano.

+0

También tengo el mismo requisito. necesitamos enviar los datos al puerto usb y el cable y el dispositivo externo lo obtendrán. A partir de este punto, el dispositivo externo se procesará solo. ¿Es posible enviar datos a un dispositivo externo sin controladores y librerías desde la aplicación? Por favor ayuda. –

Respuesta

12

I Básicamente estoy haciendo lo mismo que estás describiendo. Todavía estoy en las primeras etapas, pero he gestionado dicha comunicación bajo algunas restricciones:

  1. Necesita un dispositivo compatible con la API de host USB. La API en sí misma ha existido desde Android 3.2 o más, pero no todos los dispositivos parecen ser compatibles. Parece que la mayoría de los dispositivos que funcionan con> 4.0 deberían funcionar, pero aún así es una verificación por dispositivo que debes hacer. Actualmente estoy usando un Acer Iconia Tab A510, que hasta ahora parece funcionar pero tiene algunas fallas: por ejemplo, no puedes cargar el dispositivo mientras usas el puerto USB ya que se comparte con el cargador pero no es compatible con USB.
  2. Como dice Neil, la API USB es de bajo nivel, por lo que creo que necesitará un controlador para su conjunto de chips USB (el que está a su lado, es decir, en su dispositivo). He tenido bastante suerte aquí, ya que hay un proyecto de código abierto que trabaja en conjuntos de chips FTDI que son los que he elegido. Si ese es su caso también, usted debe comprobar los proyectos:

espero que esto ayude. Como he dicho, estoy empezando a trabajar en este ecosistema y todavía tengo que encontrar mi camino en muchos "lugares".

Cheers, Asier.

+0

Parece ser un muy buen punto de partida. Muchas gracias (también Royston y Neil) – Kosmo

+0

De nada. Sería genial si puedes marcarlo como respondido si te ayudó, para que otros puedan encontrarlo. ;-) – Asier

+0

una respuesta tan potente. + 1 –

1

Actualmente la interfaz ADB es una forma. Flow es controlado por la PC host usando adb. En cuanto a su requisito, parece que podría necesitar abrir el código fuente, vuelva a sintonizar el controlador USB para permitir la comunicación en ambos sentidos. Después de eso, tendrá que diseñar su propia API que permita a una aplicación enviar mensajes a través de USB. Esto requerirá mucho trabajo ya que el modelo actual de Android no lo admite.

0

Si el dispositivo Android que va a conectar el dispositivo a, compatible con el modo de host USB entonces la API puede ayudar. sin embargo, es una API de bajo nivel que las conversaciones en el búfer de solicitud USB (URB) Estoy escribiendo una serie de abstracción en el momento de utilizar este API, pero no está listo para transmitirse en la actualidad.

Si el dispositivo no androide es capaz de actuar como anfitrión entonces como Royston sugiere la ruta ADB podría ser mejor para usted y hay ejemplos de cómo hacer esto en los paquetes de APIs de correos versión api 12.

Cuestiones relacionadas