Java 我可以增加USB端点的大小吗?

Java 我可以增加USB端点的大小吗?,java,android,usb,Java,Android,Usb,这是我用来打开USB设备的代码 private void openDevice(UsbDevice device){ Log.v(TAG, "USB device setup initiated"); Map<String, UsbDevice> connectedDevices = usbManager.getDeviceList(); if (!connectedDevices.isEmpty()) { if (device.getVen

这是我用来打开USB设备的代码

private void openDevice(UsbDevice device){
    Log.v(TAG, "USB device setup initiated");
    Map<String, UsbDevice> connectedDevices = usbManager.getDeviceList();

    if (!connectedDevices.isEmpty()) {
        if (device.getVendorId() == USB_VENDOR_ID && device.getProductId() == USB_PRODUCT_ID) {
            Log.i(TAG, "Device found: " + device.getDeviceName());
            Log.i(TAG, "Ready to open USB device connection");
            connection = usbManager.openDevice(this.device);
            intface = this.device.getInterface(0);
            connection.claimInterface(intface, true);
            USBisOpen = true;
            Log.v(TAG, "USB is Opened");
        }
    }
}
但我似乎不能这样利用它

 UsbEndpoint endpoint = new UsbEndpoint(address, attributes, size, interval);
代码中的注释说“UsbEndpoint应该只由UsbService实现实例化”,这与此有关吗


感谢您阅读我的问题。

端点的最大大小是USB规范定义的参数。 您不能更改设备的端点大小(最大数据包大小)。根据规范,以下是最大尺寸-

USB 3.0

大容量-1024字节
控件-512字节
等时-1024字节
中断-1024字节

USB 2.0(高速)

大容量-512字节
控件-64字节
等时-1024字节

中断-1024字节

端点的最大大小是USB规范定义的参数。 您不能更改设备的端点大小(最大数据包大小)。根据规范,以下是最大尺寸-

USB 3.0

大容量-1024字节
控件-512字节
等时-1024字节
中断-1024字节

USB 2.0(高速)

大容量-512字节
控件-64字节
等时-1024字节

中断-1024字节

端点的最大数据包大小是USB设备固件的属性。如果您能够修改固件,则可以更改最大数据包大小,但这可能是一个复杂的过程,对于大多数USB设备来说通常是不可能的


典型的PC操作系统从设备读取USB描述符,以计算每个端点的最大数据包大小。然后,适当的USB驱动程序将使用这些最大数据包大小来确保与设备的通信正常工作。

端点的最大数据包大小是USB设备固件的属性。如果您能够修改固件,则可以更改最大数据包大小,但这可能是一个复杂的过程,对于大多数USB设备来说通常是不可能的


典型的PC操作系统从设备读取USB描述符,以计算每个端点的最大数据包大小。正确的USB驱动程序将使用这些最大数据包大小,以确保与设备的通信正常工作。

FYI:USB 1.1和2.0“全速”批量和中断EPs最大为64字节。低速最大仅为8字节。@TurboJ感谢更新注释以使其更清晰。FYI:USB 1.1和2.0“全速”大容量和中断EPs的最大值为64字节。低速最大值仅为8字节。@TurboJ感谢您更新了注释以使其更清晰。
public UsbEndpoint(int address, int attributes, int maxPacketSize, int interval) {
    mAddress = address;
    mAttributes = attributes;
    mMaxPacketSize = maxPacketSize;
    mInterval = interval;
}
 UsbEndpoint endpoint = new UsbEndpoint(address, attributes, size, interval);