Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.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
android usb请求等待不返回_Android_Request - Fatal编程技术网

android usb请求等待不返回

android usb请求等待不返回,android,request,Android,Request,我想使用安卓USB中断。上面的代码是从我自己的USB板接收数据的线程。但是当我尝试调用UsbRequest ur=mConnection.requestWait()时函数不返回,它总是运行到requestWait()。为什么会发生这种情况?代码中的requestWait()将等待请求队列的结果(byteBuffer,9) 以下是它无法返回的一些可能原因: 您的请求队列位于与USB设备实际发送数据的端点不同的端点上。仔细检查您正在侦听的接口和端点是否正确 在USB设备固件端,不要在公共接口类(如H

我想使用安卓USB中断。上面的代码是从我自己的USB板接收数据的线程。但是当我尝试调用
UsbRequest ur=mConnection.requestWait()时
函数不返回,它总是运行到
requestWait()
。为什么会发生这种情况?

代码中的
requestWait()
将等待
请求队列的结果(byteBuffer,9)

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

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

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


  • 在我自己的USB HID设备上,两个端点(IN和OUT)连接到MK802,我遇到了相同的问题(将返回false的请求排队)。我打电话给false的claimInterface。设置以下参数有助于我正确接收数据

    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();
    

    对于我自己的HID设备,用于先出方向(主机->设备)的requestWait()挂起,所以我想我应该放弃等待(毕竟一个输出请求失败的频率有多高),现在一切正常。我在请求中不执行requestWait()。我还没有检查这是不是第一个挂起的请求,或者是每个人都挂起的请求,但这无关紧要。
    c.claimInterface(device.getInterface(0), true);