Ist die Kommunikation mit einem Gerät über den USB-Anschluss möglich?

Ich bin neu auf der Android-Plattform und möchte wissen, ob es möglich ist, dass ein Android-Gerät (App) mit einem Linux/XP-System über einen USB-Anschluss für die 2-Wege-Kommunikation kommuniziert. Wenn ja, wie kann es gemacht werden?

Was ich erreichen möchte: Ich habe einen PC mit Linux und möchte eine kleine App in mein Android-Gerät schreiben, um Daten vom PC über USB zu senden und zu empfangen.

Das hängt ein wenig davon ab, was Sie unter „Kommunizieren“ verstehen. Suchen Sie nach Geräten, die den USB-Host-Modus unterstützen, oder möchten Sie nur Datenpakete in beide Richtungen über das Kabel senden? Letzteres kann mit ADB und Portweiterleitung erreicht werden

Antworten (3)

Dies ist auf den meisten Geräten nicht möglich, da sie den USB-Host-Modus nicht unterstützen. Einige Geräte haben USB-OTG-Unterstützung oder einen USB-Host-Anschluss, aber das sind bisher relativ seltene Geräte. Theoretisch könnten Sie eine Anwendung unter Win/Linux schreiben, um über USB auf das Telefon zuzugreifen, aber nicht umgekehrt.

Während dies aus Sicht eines USB-Hosts im Allgemeinen richtig ist, möchte ich nur darauf hinweisen, dass Sie den Host-Modus nicht unbedingt benötigen, wenn Sie einfach Datenpakete über ein USB-Kabel senden möchten. Sie können ein Client/Server-Setup mit einer Desktop-App und der Portweiterleitung von ADB verwenden , um Datenpakete in beide Richtungen zu senden. So funktioniert PDANet im Wesentlichen.
Ja, deshalb habe ich die Möglichkeit erwähnt, eine Anwendung für den Desktop zu schreiben. Ich habe nur vergessen, die Client/Server-Architektur zu erwähnen. Gute Aufklärung.

Android-Geräte als USB-Hosts waren für alle Entwickler von Interesse. Bis zum HoneyComb-Betriebssystem von Android (OS 3.0) gab es keine Anzeichen für eine Möglichkeit.
Die neueste HoneyComb-API (OS 3.1) scheint jedoch Möglichkeiten zu bieten, Android-Geräte zu unterstützen, die als USB-Hosts verwendet werden. Dafür wurde eine API aufgenommen.
Obwohl derzeit nur sehr wenige Android-Geräte die USB-Host-Funktion unterstützen, wird dies in allen kommenden Geräten möglich sein.

1) 3.1 ist Honeycomb, nicht ICS. Es wurde bereits auf vielen Geräten bereitgestellt, und einige sind tatsächlich bereits bei 3.2. 2) Mehrere Honeycomb-Geräte unterstützen den USB-Host-Modus absolut, einschließlich Xoom. Sie benötigen nur einen OTG-Adapter, wenn das Gerät keinen USB-Anschluss in voller Größe hat.
+1 dazu ... Ich habe mich wahrscheinlich auf ältere Dokumentationen bezogen. Aber ja, neue Geräte unterstützen die USB-Host-Fähigkeit. Danke, @eldarerathis!

Android macht den USB-Gerätemodus nicht direkt für Anwendungen verfügbar, aber Apps können Daten indirekt über IP übertragen, wenn Tethering verwendet wird. Dies erfordert manchmal eine zusätzliche benutzerdefinierte „Proxy-ähnliche“ Software/Treiber auf dem Host, um die Daten zu entpacken. Um beispielsweise ipMIDI als MIDI unter Linux zu interpretieren, wird multimidicast/QmidiNet benötigt.

Der Host-Modus ist jedoch seit 3.1 verfügbar (in android.hardware.usb).

Hoffentlich unterstützt Google irgendwann den Gerätemodus (seufz). Sehen Sie sich diese Probleme im Android-Projekt an (und markieren Sie sie, wenn sie Sie interessieren!):
https://code.google.com/p/android/issues/detail?id=10176
https://code.google.com/p/ android/issues/detail?id=30198