2013-04-30 17 views
8

Sto provando a comunicare con dispositivo USB da smartphone basato su Android tramite OTG. Sono stato in grado di comunicare con il mio dispositivo utilizzando l'API host USB di Android. Il problema della soluzione dell'Host Host USB è rappresentato dalle prestazioni (trasferimento singolo bulk limitato da 16384 byte).Utilizzo di libusb su Android senza rooting

La libusb può eseguire richieste più grandi e ora sto cercando di integrarla utilizzando Android NDK. Sono riuscito a compilare fonti libusb per Android e anche a initUSB(), ma libusb_open(dev, &dev_handle) restituisce -3 (Accesso negato).

Come posso passare il descrittore di file

int fd = connection.getFileDescriptor() 

a libusb dopo aver ottenuto USB_PERMISSION sotto Android API host USB e ottenere l'accesso ai dispositivi USB sotto libusb?

+0

provare questo fork di libusb https://github.com/martinmarinov/rtl_tcp_andro-/tree/master/jni/libusb-andro. ha la funzione open2 (, int fd) per questo voto – 4ntoine

+0

per ottenere una buona spiegazione dal team di Android: https://code.google.com/p/android/issues/detail?id=56450 – 4ntoine

risposta

5

Questo è quello che stai cercando.
https://github.com/kuldeepdhaka/libusb/tree/android-open2
basta compilarlo e rilasciarlo. :)
vedere la sezione "How To per Android" per l'utilizzo completo.

ho apportato tutte le modifiche necessarie a libusb (e im anche a utilizzarlo).
Dispone di SELinux anche per "Android 5.0".

+1

Sembra promettente, ho ho guardato il tuo progetto github ma non sono ancora sicuro di come usarlo. Stai usando jni per chiamare libusb dal codice java? – dweebo

+0

@dweebo Sì, Java -> JNI -> libusb –

+0

Grazie! Qualche possibilità che tu possa condividere anche quel codice? – dweebo

Problemi correlati