HID两种方式在Arduino和Android之间进行通信(controlTransfert)

时间:2017-03-15 10:02:53

标签: android arduino usb hid libusb

我希望在leonardo和Android平板电脑(充当主机)之间进行2次双向(进出)HID通信。在leonardo上,我使用Nicohood HID project 我已经成功地使代码在Linux,Windows和MacO上运行,所以它是可能的。

使用纯Android实现,我只能从leonardo接收数据但不发送给它...

根据我在描述符中看到的,使用特定端点从设备(IN方向)发送数据。对于另一种方式(OUT,到设备),我们必须使用控制端点。

尽管如此,它并没有在android上运行。这是我使用的代码:

UsbDeviceConnection mUsbConnection = mUsbManager.openDevice(myDevice);
byte data[] = {7, 11, 13, 17};
int resOut = mUsbConnection.controlTransfer(0x21, 9, 200, 2, data, data.length, 50);

 // => resOut value is always -1 (didn't succeed to communicate)

对于参数,我使用了这个问题的答案:Using Android to Communicate with a USB HID Device并查看了Linux上的libusb / nicohood隐藏通信示例...

运气不好,我试图改变" 200"到" 0"或指数从0到1或2,但我不知道它们的意思,它并没有真正帮助......

如何使用带有android的控制端点将数据发送到设备?

PS:我可以从设备读取HID消息,因此不是权限问题。

0 个答案:

没有答案