Android L | libusb_init返回LIBUSB_ERROR_OTHER(-99)

CAM*_*BAP 6 android libusb android-ndk android-5.0-lollipop

我试图libusb这种方法中建议使用不带根的Nexus 5 (通过将usb文件描述符从java传输到本机端).

我的应用程序通过权限请求权限UsbManager.requestPermission,然后运行调用libusb_initcreate的本机方法libusb_context.

libusb_init返回LIBUSB_ERROR_OTHER代码(-99).在挖掘代码后,我明白为什么会发生这种情况.libusb报告'could not find usbfs'因为opendir("/dev/bus/usb")返回0.

也是从adb shell我无法执行ls /dev,奇怪,因为我有权利(在华为U8950-1具有相同的权利,我可以这样做):

drwxr-xr-x root root 2014-09-04 10:26 dev

看起来像下面描述的方法不适用于所有Android设备.有人可以解释原因吗?

and*_*oid 3

这个 libusb 分支中已经有一个修复:

https://github.com/martinmarinov/rtl_tcp_andro-

现在,您不仅需要传递文件描述符,还需要通过 UsbDevice.getDeviceName() 传递设备文件路径。