Frage Android: USB-Kommunikation Android <-> Externes Gerät


Ich habe mehrere Themen gefunden, die über dieses Thema sprechen, aber nachdem ich sie gelesen habe, habe ich keine klare Vorstellung von meinem Problem.

Wir haben ein externes Gerät (etwas wie ein tomtom-Gerät, ich meine, kein Zubehör) und wir möchten dieses Gerät an ein Android-Gerät anschließen. Und wir möchten serielle Kommunikation zwischen dem externen Gerät und dem Android-Gerät über eine USB-Verbindung haben. (Zur Zeit haben wir Kommunikation zwischen dem externen Gerät und anderen nicht-Android-Geräten mit RS232-Schnittstelle, aber das externe Gerät kann die Kommunikation mit einem USB-Kabel)

Wie ich gelesen habe, haben wir USB-API-Unterstützung seit 3.1.

Können wir eine Android-Anwendung entwickeln, die über USB-Kabel mit unserem externen Gerät kommuniziert? Ich meine, das Senden von Daten an das Gerät und das Empfangen von Daten vom Gerät in beide Richtungen, wir möchten das Android-Gerät als "Display" verwenden.

Vielen Dank im Voraus.


5
2017-10-04 09:33


Ursprung


Antworten:


Ich mache im Grunde dasselbe, was du beschreibst. Ich bin immer noch in der Anfangsphase, aber ich habe solche Kommunikation unter einigen Einschränkungen geschafft:

  1. Sie benötigen ein Gerät, das die USB Host API unterstützt. Die API selbst gibt es seit Android 3.2 oder so, aber nicht jedes Gerät scheint es zu unterstützen. Es sieht so aus, als würden die meisten Geräte mit> 4.0 funktionieren, aber es ist immer noch eine Überprüfung pro Gerät, die Sie durchführen sollten. Ich benutze derzeit ein Acer Iconia Tab A510, das bisher anscheinend funktioniert, aber einige Störungen aufweist: Sie können das Gerät beispielsweise nicht laden, während Sie den USB-Anschluss verwenden, da er mit dem Ladegerät geteilt wird, aber nicht mit USB kompatibel ist.
  2. Da Neil sagt, dass die USB-API niedrig ist, denke ich, dass Sie einen Treiber für Ihren USB-Chipsatz benötigen (den an Ihrer Seite, d. H. In Ihrem Gerät). Ich hatte viel Glück, denn es gibt ein Open-Source-Projekt, das an FTDI-Chipsätzen arbeitet, die zufällig von mir ausgewählt wurden. Wenn das auch der Fall ist, sollten Sie die Projekte überprüfen:

Ich hoffe das hilft. Wie gesagt, ich fange an, in diesem Ökosystem zu arbeiten und muss mich immer noch an vielen "Orten" orientieren.

Prost, Asier.


12
2017-10-17 08:53



Derzeit ist die AdB-Schnittstelle eine Möglichkeit. Der Fluss wird vom Host-PC mithilfe von adb gesteuert. Wenn Sie auf Ihre Anforderung schauen, sieht es so aus, als müssten Sie den Quellcode öffnen. Stellen Sie den USB-Treiber neu ein, um die Kommunikation auf beide Arten zu ermöglichen. Danach müssen Sie Ihre eigene API entwerfen, die es einer Anwendung ermöglicht, Nachrichten über USB zu senden. Dies erfordert viel Arbeit, da das aktuelle Android-Modell dies nicht unterstützt.


1
2017-10-04 11:18



Wenn das Android-Gerät, an das Sie Ihr Gerät anschließen, den Host-Modus unterstützt, kann die USB-API helfen. Es ist jedoch eine Low-Level-API, die in USB-Anfrage Puffer (URBs) spricht Ich schreibe eine serielle Abstraktion im Moment mit dieser API, aber es ist nicht bereit für die Ausstrahlung derzeit.

Wenn Ihr Nicht-Android-Gerät als Host fungieren kann, dann wie Royston schlägt die adb-Route könnte für Sie am besten sein und es gibt Beispiele, wie dies in den api-Bundles post api Version 12 tun.


0
2017-10-08 00:08