Android USB abfragen

Armin7

Mitglied
Hallo miteinander; ich hätte da mal eine Frage ...

Umgebung:
Tablet-PC mit Android 4.0.3 und USB-Schnittstelle; angebich Host-fähig
Laptop Win7 mit Eclipse​
Auf dem Tablet habe ich eine App installiert
USB Host Controller​
und eine USB-Maus angesteckt. Mit der App kann ich unter "Connected USB devices" abfragen:
3-1 00c3:15ca USB Optical Mouse
Zur Anfänger-Übung wollte ich ähnliches durch eine eigene App programmieren, aber leider bringt mir bereits dieses hier leere Liste bzw. null:
UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);
System.out.println("manager.getDeviceList(): " + manager.getDeviceList());
System.out.println("manager.getAccessoryList(): " + manager.getAccessoryList());
Womit liege ich falsch?

Gibt es irgendwo eine (möglichst simple) Demo, wie der USB-Port abgefragt werden kann?

Danke für jeden Tipp!
 

Armin7

Mitglied
Danke MiDniGG für den schnellen Tipp.

Ja, genau das war bisher in Hauptsache die Quelle meiner Informationen. Leider mit dem genannten "Erfolg". Hier vermisse ich auch ein praktikables (Komplett-)Beispiel. Denn als Anfänger im Thema (~Java und Android) mag es auch an was ganz profanem liegen. :oops:
 
M

MiDniGG

Gast
Also von der API her ist es ja so, dass getDeviceList eine HashMap mit den angeschlossenen Geräten zurückgibt. AccessoryList eine Liste mit allen "USB accessories" oder null, wenn es keine gibt.

Wo testest Du die Anwendung denn?
Direkt am Gerät? Wie kommst Du da an die sysouts ran?
Oder im Emulator? Da wüsste ich nicht, wie man ein USB-Gerät "anschließt"/simuliert.

Die entsprechenden uses hast du im AndroidManifest eingetragen?
 

Armin7

Mitglied
Also von der API her ist es ja so, dass getDeviceList eine HashMap mit den angeschlossenen Geräten zurückgibt. AccessoryList eine Liste mit allen "USB accessories" oder null, wenn es keine gibt.

Daher hätte ich von wenigstens einem der beiden
System.out.println("manager.getDeviceList(): " + manager.getDeviceList());
System.out.println("manager.getAccessoryList(): " + manager.getAccessoryList());​
in der Logcat etwas anderes erwartet als:
manager.getDeviceList(): {}
manger.getAccessoryList(): null​

Wo testest Du die Anwendung denn?
Direkt auf dem Tablet-PC

Wie kommst Du da an die sysouts ran?
Da wüsste ich jetzt leider nicht mal, von was Du sprichst.:oops:
Mein Beleg, dass es irgendwie gehen muss, ist die besagte (gratis-)App, die ich installiert habe.

Oder im Emulator?
Wäre zwar nice to have, braucht es aber nicht.

Die entsprechenden uses hast du im AndroidManifest eingetragen?
Nicht wirklich. Ich versuchte mal diese Einträge (ohne Auswirkung):
<uses-feature android:name="android.hardware.usb.accessory"/>
<uses-feature android:name="android.hardware.usb.host"/>​
 

Armin7

Mitglied
Ah OK. Du hast also Dein Tablet über USB-Debugging am Rechner hängen, richtig?!
Nur 'fast' richtig ;). Ich hole die *.apk per WLAN auf den Tablet und installiere dann hier. Damit soll es also keine sonstige USB-Aktion geben, außer die meiner App.


Dann ist auch klar, warum Du die System.outs in der Logcat siehst. :)
Da hilft mir auf dem Tablet eine weitere Gratis-App: "Quick System Info"

Leider kann ich Dir hier auch nicht mehr weiterhelfen. Nur noch ein paar Links vor die Füße schmeißen. Aber keine Ahnung in wie weit sie Dir helfen können...

Dennoch ein herzliches Dankeschön für die Mühe!
 

Ähnliche Java Themen


Oben