android usb requestWait不归

use*_*783 11 android request

ByteBuffer byteBuffer = ByteBuffer.allocate(9);;    
UsbRequest request = new UsbRequest();
request.initialize(mConnection,mEndpointIntr);
boolean b = request.queue(byteBuffer, 9);
Log.d(TAG, "start the request wait");
UsbRequest ur = mConnection.requestWait();
Run Code Online (Sandbox Code Playgroud)

我想使用Android USB中断.上面的代码是一个从我自己的USB板接收数据的线程.但是当我尝试调用UsbRequest ur = mConnection.requestWait();函数不返回时,它总是会遇到requestWait().为什么会这样?

小智 8

requestWait()你的代码将等待的结果request.queue(byteBuffer, 9)

以下是可能无法返回的一些原因:

  1. 您的请求队列位于与USB设备实际发送数据不同的端点上.仔细检查您是否正在侦听正确的接口和端点.

  2. 在USB设备固件端,不要在公共接口类(如HID)上创建中断端点.创建一个新的供应商特定接口,否则内核可能会获得接口,如果它是HID并且请求队列可能会失败,这就是我发生的事情.