我正在开发一个必须与 USB 设备通信的 Android 应用程序。我尝试在我的应用程序中使用标准 google API,但设备列表始终为空。
如果我将 USB 设备信息与 google api 一起使用,情况相同。google api搜索到的设备列表为空,
lsusb 给出以下结果:
Bus 001 Device 001: ID 1d6b:0001
Bus 002 Device 001: ID 1d6b:0002
Bus 003 Device 001: ID 1d6b:0001
Bus 002 Device 002: ID 2226:0014
我的设备是 2226:0014
日食日志:
I/USB3G(92): event { 'add', '/devices/platform/sw-ehci.1/usb2/2-1', 'usb', '', 189, 133 }
I/USB3G(92): path : '/sys/devices/platform/sw-ehci.1/usb2/2-1'
I/USB3G(92): VID :size 5,vid_path '/sys/devices/platform/sw-ehci.1/usb2/2-1/idVendor',VID '2226
I/USB3G(92): '.
I/USB3G(92): PID :size 5,Pid_path '/sys/devices/platform/sw-ehci.1/usb2/2-1/idProduct',PID '0014
I/USB3G(92): '.
I/USB3G(92): cmd=/system/etc/usb_modeswitch.sh /system/etc/usb_modeswitch.d/2226_0014 &,
I/USB3G(92): excute ret : 0,err:No such file or directory
如果我插入 rs232 适配器、蓝牙加密狗等设备,则没有任何反应,并且 API 和 lsusb 没有任何结果。
设备的协议基于 ezusb 库。Android v.:4.0.3 内核 v.:3.0.8 固件版本:crane_evb-eng 4.0.3 IMLK74k 20120330
有什么方法可以通过 API 访问隐藏的 USB 设备,还是我应该通过编写驱动程序并将其修补到固件中来实现对该设备的支持?
更新:即使我在 *system/etc/usb_modeswitch.d/* 中创建名称为 2226_0014 的信息文件,其中包含
DefaultVendor= 0x2226
DefaultProduct=0x0014
TargetVendor= 0x2226
TargetProductList="0014"
MessageEndpoint="0x00"
NeedResponse=1
CheckSuccess=20
我得到同样的错误:“没有这样的文件或目录”