按照简单的教程,我可以连接到设备(内部带有 ADNS-5000 芯片的 USB 光学鼠标)并进行bulkTransfer。
UsbInterface intf = device.getInterface(0);
UsbEndpoint endpoint = intf.getEndpoint(0);
UsbDeviceConnection connection = manager.openDevice(device);
connection.claimInterface(intf, forceClaim);
connection.bulkTransfer(endpoint, bytes, bytes.length, TIMEOUT); //do in another thread
ADNS-5000 规范(可以用谷歌搜索)定义了一些“USB 命令”,例如:
助记符:Get_Status_Device
命令:80 00 00 00 00 00 02 00
注:正常返回 00 00,自供电 00 00,远程唤醒 02 00
所以我的理解是:当我写数据时:
private byte[] bytes = {(byte) 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00};
到设备我应该得到0x00, 0x00
或者0x00, 0x00
(这可能是规范中的错误,因为这个字节序列被定义为两种不同状态的结果)或者0x20, 0x00
作为回报,但我没有看到 api 以任何方式返回任何东西,对吗?