java—我无法获得android accesory模式连接上可以读取的剩余字节数

kcwpcxri  于 2021-07-03  发布在  Java
关注(0)|答案(0)|浏览(240)

我试图得到多少字节可用于读取一个aoa连接,但当我调用 available () 方法 FileInputStream 我得到一个ioexception,消息是:“ioctl失败:einval(无效参数)”
注1:我使用jni从c++调用java方法
注2:如果,则不打电话 available() 我试着读的方法,效果很好
我做错什么了?在从aoa连接的套接字读取数据之前,是否有其他方法请求可用字节?
这是java代码:

public int testConnection () throws Exception {
    UsbManager usbManager = (UsbManager) this.context.getSystemService(Context.USB_SERVICE);
    final UsbAccessory[] accessoryList = usbManager.getAccessoryList();

    if (accessoryList == null || accessoryList.length == 0) {
        return -1;

    } else {
        UsbAccessory usb = accessoryList[0];

        try {
            ParcelFileDescriptor fileDescriptor = usbManager.openAccessory(usb);

            if (fileDescriptor != null) {
                FileDescriptor fd = fileDescriptor.getFileDescriptor();
                FileInputStream inStream = new FileInputStream(fd);

                inStream.available ();

            } else {
                return -2;
            }

        } catch (IOException e) {  
            return -3;

        } catch (Exception e) {
            return -4;
        }
    }

    return 0;
}

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题