Java Android异步USB读取ByteBuffer,但无法确定大小
我正在使用最近添加的Android USB API从Android 3.1操作系统(摩托罗拉Xoom)上基于FTDI的USB设备读取字节: 但是,我在执行异步读取时遇到了一个问题Java Android异步USB读取ByteBuffer,但无法确定大小,java,android,asynchronous,usb,bytebuffer,Java,Android,Asynchronous,Usb,Bytebuffer,我正在使用最近添加的Android USB API从Android 3.1操作系统(摩托罗拉Xoom)上基于FTDI的USB设备读取字节: 但是,我在执行异步读取时遇到了一个问题 ByteBuffer bb = ByteBuffer.allocate(128); UsbRequest request = new UsbRequest(); request.initialize(deviceConnection, deviceInterface.ge
ByteBuffer bb = ByteBuffer.allocate(128);
UsbRequest request = new UsbRequest();
request.initialize(deviceConnection, deviceInterface.getEndpoint(0));
boolean sent = request.queue(bb, 128);
request = deviceConnection.requestWait();
if(request.getEndpoint() == deviceInterface.getEndpoint(0)) {
// Send a message to the Activity with the read array
Message msg = usbTest.handleAsyncMessage.obtainMessage();
msg.obj = bb.array()
usbTest.handleAsyncMessage.sendMessage(msg);
}
此函数用于正确读取设备中的字节。然而,它并没有告诉我读了多少。bb.position()始终返回0,bb.remaining()始终返回128。我无法确保我的读取将返回128个字节(可能读取,例如请求设备状态,只返回大约12个字节),并且我无法确定读取结束和ByteBuffer中的垃圾开始的位置。我试过倒带ByteBuffer,但读数没有设置标记。有没有办法确定读取的字节数
谢谢我不确定这是您的问题,但在处理端点0时,您似乎必须做一些特殊的事情。从以下的javadocs: 此类不支持端点0上的请求;改为用于端点零请求
我不确定这是您的问题,但在处理端点0时,您似乎必须做一些特殊的事情。从以下的javadocs: 此类不支持端点0上的请求;改为用于端点零请求
显然你不能。Android USB支持的一个缺点:(
请参见显然您不能。安卓USB支持的一个缺点:(
参见
NOPE,GETEndoPoT(0)实际上返回了我们通常考虑的端点1。它跳过控制端点。端点是零均值类型的端点,还是端点索引?您能解释一下吗?NOPE,GETEndoPoT(0)。实际上返回的是我们通常考虑的端点1。它跳过控制端点。端点是零均值类型的端点,还是端点索引?你能解释一下吗?