2012-12-30 4 views
5

Ich habe ein Programm auf PC, das Schnureingabe von USB nimmt (altes Programm) Ich habe ein Android (4.X) Tablette, die Schnureingabe auf USB dem Programm zur Verfügung stellen muss, das auf PC läuft . Wenn ich den Beispielcode auf Android verwendet, gibt der folgende Code leere hashmap. Der PC (auf 32 Bit XP und 64 Bit Windows 7 versucht) hat Android-Treiber.Android zu PC USB Lesen/Schreiben

Jedes real funktionierende Codebeispiel, das über USB mit dem PC kommuniziert, wird helfen, pl. weisen Sie auch darauf hin, ob ein Treiber usw. auf Android benötigt wird, um mit dem PC zu sprechen.

Ich habe versucht, sowohl den Accessory-Modus und den Host-Modus (nur für den Fall)

Antwort

8

Ich bin mir nicht sicher, ob ich genau verfolgen, was Sie hier machen, aber wenn ich Sie richtig verstanden habe - es gerade gewonnen‘ t so arbeiten. Die UsbManager.getDeviceList() ist für die Verwendung mit Android-Geräten mit USB Host Port bestimmt, an den einige USB Geräte angeschlossen sind. Aber soweit ich verstehe, verbinden Sie Android-Tablet als Gerät zu Ihrem PC fungiert als Host (ich denke schon, weil Sie über Treiberinstallation geschrieben).

Wenn Sie zwischen Android USB Gerät und einige USB-Host- (z weil Ihr Android-Gerät hat keine USB-Host-Funktionen) zu kommunizieren, müssen Sie Zubehör-Modus (Ich schlage vor, Sie beginnen mit this Android Developers Blog post). Dieser Modus erfordert jedoch spezielle Unterstützung auf der USB-Host-Seite (er muss mit dem Gerät mit Android Open Accessory Protocol kommunizieren). Beachten Sie, dass getDeviceList() im Zubehörmodus keinen Sinn ergibt - das angeschlossene Zubehör ist zum ersten Mal ein USB-Host und kein USB-Gerät, und es kann nur einen USB-Host auf einem USB-Bus geben.

Wenn Sie mit dem PC über den Zubehörmodus kommunizieren möchten, können Sie dies mit AOAP implementation für PC versuchen. Wenn Sie nur für einige Debugging-Anforderungen mit Android-Gerät sprechen müssen, können Sie stattdessen ADB port forwarding und TCP-Verbindung verwenden.

+0

Hallo Code Painters, Danke für die Antwort, Sie haben Recht, es ist eigentlich der Aufruf UsbManager.getAccessoryList(), aber das gibt Null zurück; – Sawant

+0

Hi @ Code Painters, Danke für die Antwort, Mein Manifest ist im Zubehörmodus eingerichtet. Folgte der Dokumentation. Sie haben recht, es ist der Aufruf von UsbManager.getAccessoryList(), aber das gibt auch Null zurück. Ich arbeite an Android 4.0.3, also verwende ich das android.hardware.usb.accessory auf API-Ebene 15. Ich bin debugging auf tcp/ip mit einem coby kyros mit usb debugging-modus aktiviert, aber es erkennt einfach kein zubehör (dh) Windows host Laptop mit dem android coby über ein usb-kabel verbunden. Ich habe versucht, die App ohne das Debug'r mit dem USB-debug'g-Modus aus zu starten, immer noch Null zurück. – Sawant

+0

Damit der Windows-Laptop als Zubehör erkannt wird, benötigen Sie eine Implementierung des Zubehörprotokolls, siehe den Link in meiner Antwort. –