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

标签 android usb communication bytebuffer

我在 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();
}

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

如何确定真正接收到的字节大小?

谢谢。

最佳答案

这是一个 bug in Android .在受影响的版本上,没有解决方法,因为实现根本不会向上传递长度。

它是 fixed在 JB-MR1(API 级别 17 以上)中。

关于android - 如何确定 UsbRequest.queue(..) 方法接收字节的长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6915588/

相关文章:

macos - FFMpeg 在 OSX Mojave 上访问 AVFoundation usb 子设备摄像头

linux - 了解 linux 标准 USB 网络摄像头驱动程序

java - Android 照片上的 EXIF 方向字段为空

android - View 与另一个 View 重叠

android - 如何杀死其他应用程序Android

android - 两个或多个 Android 设备之间的通信

python - Tkinter:在主循环中调用事件

java - 如何在 Android (Java) 中以编程方式制作 TextView 多行

linux - 如何知道哪个设备连接在哪个/dev/ttyUSB端口

windows - http.sys 实现