2012-07-04 13 views
37

Nun, dass die Android APIs support working directly with USB devices (seit 3.1), bin ich neugierig, ob es Arbeit gab, um "Soft-Modus" Treiber für einige der zu erstellen populärere klassenkonforme Geräte (z. B. Audio oder HID).Android USB-Host-Modus "Soft-Modus" -Treiber für Standard-Klasse-konforme USB-Geräte

Mit anderen Worten, gibt es irgendwelche Open-Source-Projekte, die nützlichere Kommunikation mit bestimmten Klassen von Geräten in eine Java-Klasse einbinden, die zu einem Android-Projekt hinzugefügt werden kann?

Für meine Zwecke bin ich speziell an USB-Audio interessiert, aber es scheint, dass ein Community-Build-Satz von Klassen, die aus Linux-Kernel-Modulquellen stammen, für viele Projekte von Vorteil sein könnte. Ich hoffe, dass andere an dasselbe gedacht haben und bereits mit der Arbeit begonnen haben. Irgendwelche Hinweise in dieser Richtung würden am meisten geschätzt werden.


ein paar mehr Ressourcen, die ich gestolpert auf:

+5

USB Audio: Wenn Sie sich für Audio-Daten-Streaming sind, ist dies unmöglich, mit android, weil isochronen Endpunkte durch die API nicht unterstützt werden. Der MIDI-Part der Audio-Klasse funktioniert jedoch (nur Bulk-Endpunkte). Bisher keine Projekte gesehen. – Alexander

+0

Danke Alexander, das ist * sehr * gut zu wissen. – Brad

+0

Dies ist eine interessante Idee. Es kann jedoch schwierig sein, große Mengen kleiner Datenpakete mit einer "dicken" API-Schicht zu handhaben. Es ist auch fraglich, ob der universelle USB-Zugang Sicherheitsüberlegungen unterminieren würde. Bei Linux ist jedes USB-Gerät gemäß den vom System definierten Regeln konfiguriert, die darüber entscheiden, wer auf das Gerät zugreifen darf. Auf der anderen Seite ist ein Android-Gerät normalerweise ein "Einzelbenutzer" -Gerät und Apps sind auf der API-Ebene sandboxed, also sollte das in Ordnung sein. Für den Anfang wäre es jedoch schön, wenn Android nur einen gut ausgewählten Satz von Kernel-Modus-Treibern aufnehmen würde. – dronus

Antwort

1

Ich habe begonnen, die Arbeit an einem IRDA Treiber-Stack über USB im Benutzerbereich. Ich arbeite an der grundlegenden Installation, aber soweit ich sehen kann, wenn ich den entsprechenden User Space Treiber zu den Linux-Kernel-Treibern wie dem STIR4200-Treiber erstellen kann, sollte ich dann in der Lage sein, über bestehende IRDA-Protokoll-Stacks zu portieren wie JIR.

Wir werden sehen ...