È "può" farlo senza radici, mi creda.
È necessario eseguire tutte le operazioni utilizzando un codice C nativo che si interfaccia con il dispositivo USB tramite USBFS. Il grosso problema deriva dalla mancanza di documentazione degli usbf di Linux. Fondamentalmente tutto deve essere fatto tramite ioctls. Detto questo, apri un dispositivo come faresti normalmente da Java. Quindi si passa il descrittore di file da USBDeviceConnection
Aggiungete a ciò che avrete bisogno di analizzare tutti i descrittori USB da soli. È possibile ottenere da loro, di nuovo dal USBDeviceConnection. Saltare dal descrittore al descrittore è semplice trovare la documentazione per ciò che ogni descrittore significa è un mal di testa MASSIVO ma è possibile trovare la maggior parte della documentazione su www.usb.org.
Ho scritto la maggior parte del codice necessario per eseguire l'analisi per i dispositivi audio e ho ottenuto tutto il tempo per provare a inviare un trasferimento isocrono e quindi ho iniziato a ricevere errori.
Dopo il passaggio a libusb ho scoperto che il problema, nel mio caso, era perché il dispositivo audio aveva anche controllori HID e il driver di default è stato atatching a quelli e rubare tutta la banda di distanza dal trasferimento isocrono. Se l'avessi saputo prima, avrei potuto perseverare con il metodo non-root non-libusb. Come è stato ho fatto arrivare i trasferimenti isocroni di lavoro tramite usb lib ma ha richiesto un dispositivo radicata :(
Ad un certo punto andrò di nuovo esso.
In sintesi, sono abbastanza sicuro che la sua possibile, ma la sua non sara 'facile !!
Wou Ti piacerebbe condividere il tuo codice, per quanto incompleto possa essere? – JellicleCat