我正在使Android应用程序从USB设备(模式USB主机)获取数据。我在https://developer.android.com/index.html以及stackoverflow
中的一些帖子中阅读了该文档,我发现它们有时使用bulkTransfer()
,有时controlTransfer()
,但我无法找出差异两种方法之间我们何时使用每种方法?有人可以给我一些建议吗?
答案 0 :(得分:2)
Control Transfer主要用于发送命令或接收设备描述符。通常在设置设备时使用。低速设备的典型数据包长度为8字节,高速设备的典型数据包长度为8,16,32或64字节。通过此方法传输的数据被格式化为三个数据包: 数据包1 - 设置:包含地址和端点号的数据包 数据包2 - 数据:正在发送的数据 数据包3 - 状态:设备确认是否已正确接收和正确读取设置数据包。
批量传输用于将大量数据包发送到目标设备。打印机和扫描仪通常遵循此传输协议。批量传输内置了错误纠正功能,可确保无错误地传输和接收数据。当获得的数据量等于请求的数据量时,认为该过程完成。这种传输方法对于时间敏感的应用程序并不理想,因为没有延迟保证。