Datenaustausch über USB

  • Hi


    ich würde gern Daten (Steuerbefehle) über die USB Schnittstelle (OTG Kabel) zwischen zwei Android Smartphones austauschen und würde gern wissen, ob dies überhaupt möglich ist. Irgenwie bin ich mit meiner Goole-Suche nicht wirklich erfolgreich gewesen. Falls dies möglich ist, dann würde ich gern wissen, ob dies mit purem Java möglich ist oder ob ich dann Bibliotheken in C entwickeln müsste. Ein paar Hinweise zur Vorgehensweise wären nützlich.


    Danke und Gruß

  • Hallo!


    Habe das Problem mittlerweile selber lösen können und möchte hier kurz berichten, was möglich und wie es funktioniert.


    Grundsätzlich funktioniert der Datenaustausch zwischen zwei Android Smartphones über die USB schnittstelle. Allerdings muss mindestens eins dieser Geräte den USB Host-Modus unterstützen. Ich habe zwei Möglichkeiten gefunden, um die Daten zwischen den Geräten auszutauschen:


    1. ADB
    Die Android Debug Bridge ist ja aus dem SDK bekannt und verwendet ihr eigenes Protokoll um die Daten an das Gerät zu senden oder vom Gerät zu lesen. Dieses Protokoll ist eher eine Einbahnstraße, da es sehr umständlich ist, Daten sowohl zu lesen als auch zu schreiben. Weiterhin ist das Protokoll sehr Komplex.


    2. AOA
    Das Android Open Accessory Protokoll ist viel einfacher in der Handhabung und ziemlich schnell implementiert.


    Die Funktionsweise:
    Das Gerät das den Host-Modus beherrscht (PC, Raspberry, Android Smartphone, etc.) weisst sich gegenüber dem "Accessory Kosumenten" als Accessory aus und "bittet" den Konsumenten in den Accessory Modus zu wechseln. Sobald der Accessory Modus aktiviert ist, ändert sich die VID und PID des Gerätes und auch der Gerätename. Danach baut das Accessory erneut eine Verbindung auf, nun aber zu der neuen VID und PID. Und schon können die Daten schnell und einfach ausgetauscht werden.


    Hier ein Link zu einem C Programm, dass die Funtionsweise gut illustriert.


    Grüße
    Whisel

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!