启用 DTR/DTE 的 USB 通信

USB Communication with DTR/DTE enabled

我开发了一个 Android 应用程序,它连接到外部 USB 设备以发送和接收消息。

我在这里遵循了官方 Android Host USB API 的指南(以及其他一些 SO 帖子): https://developer.android.com/guide/topics/connectivity/usb/host.html

除一件事外一切正常: 当我的应用程序未连接时,外部 USB 设备似乎正在发送数据,这导致它的 USB 缓冲区溢出 - 从而停止设备。

根据设备制造商的说法,解决方案是启用 DTR/DTE(我不得不承认我不太明白它是什么)。但这显然能让他们检查我的应用程序是否正在监听,然后才发送他们的数据。

那么,能否分享一个代码示例,说明如何在 Android USB 连接上启用 DTR/DTE?

更新:

经过更多搜索后,我似乎需要使用 UsbDeviceConnection.controlTransfer 方法 - 但我不知道参数应该是什么。

终于找到答案了:

connection.controlTransfer(0x21, 0x22, 0x1, 0, null, 0, 0);

我在这里找到它:Android USB host read from device