PC usb host通过libusb与Android accessory模式通信

PC usb host communicate with Android accessory mode through libusb

我想通过 libusb 从 HOST PC(linux) 与 Android 附件模式通信,我已经设置了 android 附件模式。但我无法获得USB句柄。

$ lsusb
Bus 001 Device 010: ID 18d1:2d00 Google Inc. Android-powered device in accessory mode

当我使用 libusb 获取这个 USB 句柄时,它总是 return NULL。如何解决?谢谢

libusb_init(NULL);
struct libusb_device_handle* handle = libusb_open_device_with_vid_pid(NULL, 0x18d1,0x2d00);
// this handle always return NULL

我通过 libusb_set_debug(NULL, 3); 在 libusb 中打开了调试消息 而且我发现这个用户没有访问这个usb设备的权限。

我通过在 /etc/udev/rules.d/

中添加一个名为 51-android.rules 的文件来修复它

51-android.rules :

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"