Android USB HID 在 bulktranfer 周围声明和发布接口(interface)是否必要?

标签 android usb hid

我现在正在从 Android USB HID 主机与设备进行通信。我在同一个界面中有一个读取端点和一个写入端点。在我做的 Android 主机上

UsbInterface        Intf       = _usbDevice.getInterface(0);
UsbEndpoint         Ep         = Intf.getEndpoint(1);
UsbDeviceConnection Connection = _usbManager.openDevice(_usbDevice);

Connection.claimInterface(Intf, true);

Connection.bulkTransfer(Ep, data, data.length, 0);

Connection.releaseInterface(Intf);
Connection.close();

所以对于写作我是这样的:认领接口(interface) -> 转移 -> 释放接口(interface) -> 关闭

为了阅读,我在另一个线程中做同样的事情。

每次在两个端点之一(同一接口(interface)中的两个端点)上进行读取或写入时,是否需要打开、声明、释放和关闭接口(interface)?或者我可以在我的程序开始和结束时打开、声明、释放和关闭它们,并且在程序生命周期中读取和写入端点,而无需在每次批量传输时声明和释放吗?

最佳答案

在我的例子中(LG G4、Android 5.*),我已经定义了所有需要的对象(UsbDeviceConnection、UsbEndpoint、UsbInterface 等)的私有(private)静态。

我正在执行 Android 在其 usb host page 上所写的全部进度.

初始化完成后,我只使用 queue()和 requestWait() 在端点与初始化设备通信,直到用户释放设备。

因此我不认为你需要总是做你发布的链:声明接口(interface) -> 传输 -> 释放接口(interface) -> 关闭 ...

关于Android USB HID 在 bulktranfer 周围声明和发布接口(interface)是否必要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26642291/

相关文章:

python - 关于检测usb设备的问题

java - 键盘向下箭头的转义序列

c++ - 与 MinGW (v.4.3.0) 和 libhid 的链接问题

无法弄清楚如何通过 USB 将数据从 stm32f103c8 发送到 PC

android - handler.postDelayed 对比 AlarmManager 对比

java - Android错误无法比较的类型: Object and int

c++ - 将条码扫描仪输入重定向到 Linux 中的特定小部件

sockets - Wireshark的替代品,可通过USB-Ethernet适配器捕获原始以太网

android - "Unable to instantiate activity ComponentInfo"

java - 将 Android 应用程序连接到 Google Cloud Endpoints : could not find class 时出错