如何确定UsbRequest.queue(..)方法的接收字节长度?

Sla*_*ava 6 usb android bytebuffer communication

我在Android 3.1中遇到UsbRequest类问题.

这是我的代码:

ByteBuffer buffer = ByteBuffer.allocate(4096);
buffer.order(ByteOrder.LITTLE_ENDIAN);
UsbRequest request = new UsbRequest();
request.initialize(mConnection, mEndpointIn);
request.queue(buffer, 4096);

if (mConnection.requestWait() == request) {
   byte[] data = buffer.array();
}
Run Code Online (Sandbox Code Playgroud)

数组的大小data为4096,但实际接收的字节长度要小得多.

如何确定实际接收字节的大小?

谢谢.

mik*_*k3y 5

这是Android中的一个错误.在受折磨的版本中,没有解决方法,因为实现只是没有通过长度.

它在JB-MR1(API级别17以上)中得到修复.


Fem*_*emi 0

我相信buffer.limit()应该返回接收到的字节数。那样有用吗?