Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何处理没有传出端点的USB-HID设备?_Java_Android_Usb Hid - Fatal编程技术网

Java 如何处理没有传出端点的USB-HID设备?

Java 如何处理没有传出端点的USB-HID设备?,java,android,usb-hid,Java,Android,Usb Hid,我一直在开发一个用于Android的USB-HID Java插件,该插件需要与许多设备进行通信,我使用bulkTransfer方法取得了很大的成功 直到我遇到一个没有任何传出端点的硬件设备。这个特定的接口有两个接口,每个接口上有一个端点。两者都是传入的,因此无法使用bulkTransfer向其发送命令 我的问题是: 1是否可以使用controlTransfer方法向设备发送相同的命令 2我可以使用我传递给bulkTransfer的相同字节数组吗 3如果上述两项均为真,那么值和索引参数在contr

我一直在开发一个用于Android的USB-HID Java插件,该插件需要与许多设备进行通信,我使用bulkTransfer方法取得了很大的成功

直到我遇到一个没有任何传出端点的硬件设备。这个特定的接口有两个接口,每个接口上有一个端点。两者都是传入的,因此无法使用bulkTransfer向其发送命令

我的问题是:

1是否可以使用controlTransfer方法向设备发送相同的命令

2我可以使用我传递给bulkTransfer的相同字节数组吗

3如果上述两项均为真,那么值和索引参数在controlTransfer上的作用是什么:

我看了看:


但它并没有真正回答我的主要问题。

首先需要说明的是,HID倾向于在数据传输中使用中断,而不是批量传输。这与控制管道或散装管道不同。当您移动鼠标或键盘时,通常会向您的计算机发送一条中断消息,这样操作系统就不必不断轮询控制管道以获取报告。在android中,这是通过queue/requestWait完成的

我个人从未见过一个装有大烟斗的隐藏式装置

所有设备都有端点0,它是一个双向控制管道。如果控制设备的固件,则可以在控制管道上发送自定义命令。所以理论上,你可以这样做,并使用相同的字节数组。但您需要知道您的设备在请求id、索引和值方面的期望值。索引可能是0接口描述符;UsbInterface.getId。值还取决于您的设备期望的内容。请尝试0


以下是您要发送给HID的内容,以供参考?看起来很奇怪。操作血糖监测设备下载各种数据的命令。很有趣。。。在这种情况下,它会有一个大容量的输出管道,这绝对是有道理的。我可能会把它做成一个CDC/虚拟com端口,但基于此:看起来一些仪表制造商有一个软件集成指南。你也许能够弄清楚什么是神奇的请求ID,让它为这个供应商工作……这样,你就可以给他们打电话,问他们是否有一个开放的指南。最坏的情况是,如果你能让它在你的计算机上工作,你可以使用wireshark并嗅探USB交易。这应该告诉你一切。