测试环境:android host:国产华为平板系统:android 4.0外接设备:U盘,三星i9003
--------------------------------
[size=medium]
在Android Usb Host 开发中,对于发现设备、如何连接设备等等的都在官方API中说的清清楚楚了,我也不再详述了,反而在与HID通讯传输数据就重点说一下,想要正确的与HID进行通讯并且传输数据,就必须要了解Usb协议,弄清楚设备的相关参数,比如USB描述符,这个是必须的,不然就无法做任何事情了,这也是我血一般的教训。
在官方API中,它分别提供了有关数据传输的方法如下:
bulkTransfer(UsbEndpoint endpoint, byte[] buffer, int length, int timeout)
controlTransfer(int requestType, int request, int value, int index, byte[] buffer, int length, int timeout)
除了以上两个方法可以进行数据传输以外,它还提供了一个UsbRequest类。
在与HID进行数据传输的时候,就要用到控制传输或中断传输了。对于controlTransfer这个方法,我想它里面的参数就难倒了很多人,在这里我就简略的说一下,我是以我自己的demo为例子(注意:我所说的例子是与HID通信的,如果不是HID设备的话,就要注意了),希望能给各位一个参考。
int requestType:确
--------------------------------
[size=medium]
在Android Usb Host 开发中,对于发现设备、如何连接设备等等的都在官方API中说的清清楚楚了,我也不再详述了,反而在与HID通讯传输数据就重点说一下,想要正确的与HID进行通讯并且传输数据,就必须要了解Usb协议,弄清楚设备的相关参数,比如USB描述符,这个是必须的,不然就无法做任何事情了,这也是我血一般的教训。
在官方API中,它分别提供了有关数据传输的方法如下:
bulkTransfer(UsbEndpoint endpoint, byte[] buffer, int length, int timeout)
controlTransfer(int requestType, int request, int value, int index, byte[] buffer, int length, int timeout)
除了以上两个方法可以进行数据传输以外,它还提供了一个UsbRequest类。
在与HID进行数据传输的时候,就要用到控制传输或中断传输了。对于controlTransfer这个方法,我想它里面的参数就难倒了很多人,在这里我就简略的说一下,我是以我自己的demo为例子(注意:我所说的例子是与HID通信的,如果不是HID设备的话,就要注意了),希望能给各位一个参考。
int requestType:确