在USB主机模式下从UsbDeviceConnection读取的最佳方式

时间:2011-12-15 22:53:17

标签: android

要从打开的USB连接读取数据,请使用UsbDeviceConnection bulkTransfer方法。

我的情况是,在发送请求后,例程应该读取所​​有传入的数据,这些数据可能只有8个字节甚至300个字节。

问题是bulkTransfer由于某种原因没有读取所有字节 - 它只返回一些字节,而可能会有更多字节。

在没有更多数据,或者增加超时,或者可能还有其他方法之前,最好围绕bulkTransfer编写一个循环。

处理此问题的最佳方法是什么?

我尝试了循环方法,我很惊讶它每次只读取大约10-20个字节,超时甚至1秒。我相信已有更多数据可供使用,不知道为什么它一次不能读取更多数据。

使用哪个缓冲区是否重要 - 许多示例有4096但是如何更改这会影响数据的读取?

非常感谢

1 个答案:

答案 0 :(得分:1)

如果设备一次发送10个字节并重复执行300个字节,那么每次使用批量传输读取时,仍然只能获得这些10个字节的块。

换句话说,该方法不会等待填充缓冲区。一旦有东西它就会返回。因此,如果您真的想收集整个300多字节的响应,则需要循环。

相关问题