Uso de libusb en Android sin enraizamiento

Estoy tratando de comunicarse con el dispositivo USB desde el teléfono inteligente basado en Android a través de OTG. Pude comunicarme con mi dispositivo usando la API de host USB de Android. El problema de la solución USB Host API es el rendimiento (transferencia única en masa limitada por 16384 bytes).

El libusb puede realizar peticiones más grandes y ahora estoy intentando integrarlo usando Android NDK. He logrado compilar fuentes libusb para Android e incluso initUSB() , pero libusb_open(dev, &dev_handle) devuelve -3 (Acceso denegado).

¿Cómo puedo pasar el descriptor de archivo

 int fd = connection.getFileDescriptor() 

A libusb después de obtener USB_PERMISSION bajo Android USB Host API y obtener acceso a dispositivos USB bajo libusb?

Esto es lo que estás buscando.
https://github.com/kuldeepdhaka/libusb/tree/android-open2
Sólo compilarlo y dejarlo en.
Consulte la sección "Cómo hacerlo para Android" para obtener un uso completo.

Hice toda la modificación requerida a libusb (y también lo estoy usando).
Tiene la corrección de SELinux para "Android 5.0" + también.

  • Cómo usb -conecta dispositivos android con adb bajo ubuntu
  • No se puede mostrar el dispositivo android en ubuntu 13.04
  • ¿Conectar el dispositivo USB al emulador de Android?
  • getDeviceList devuelve dispositivos que ya no están conectados
  • Controladores de "modo blando" del modo de host USB de Android para dispositivos USB estándar compatibles con la clase
  • ¿Cómo probar la velocidad de carga de la batería?
  • Android: Recibe UsbDevice de intención
  • ¿Cómo configurar el modo de conexión USB?
  • Problemas de conexión de Android 6 Nexus 5 USB
  • ¿Hay una manera de comunicarse con dispositivos USB en Android?
  • Transferir archivos de android a computadora vía usb programáticamente
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.