我正在为使用USB主机链接到我的Android设备的 USB HID控制器开发驱动程序。 所有使我能够轮询控制器状态或设置不同标志的特定于供应商的操作都定义为特定于供应商的控制命令,其中包含一个 setup 阶段和一个数据阶段(设备->控制器)。根据不同的命令,控制器可能会发回状态阶段消息。
我了解应该使用方法 UsbDeviceConnection.controlTransfer()发送设置和数据阶段。我不明白的是我应该使用哪种方法/ API来读取控制器发回的状态。
有人知道吗?
非常感谢您!
答案 0 :(得分:1)
根据著名的开源项目https://github.com/mik3y/usb-serial-for-android,如果出现问题,该方法将返回-1。
int result = mConnection.controlTransfer(FTDI_DEVICE_OUT_REQTYPE, SIO_RESET_REQUEST, SIO_RESET_SIO, 0 /* index */, null, 0, USB_WRITE_TIMEOUT_MILLIS);
if (result != 0) {
throw new IOException("Reset failed: result=" + result);
}
(从 FtdiSerialDriver.java 中提取的代码)
我知道,因为那就是我正在发生的事情!