UsbInterface声明失败

时间:2014-04-30 10:50:22

标签: java interface usb winusb usb4java

我遇到了一个问题: 我在Windows 8笔记本电脑上使用usb4java。我的usb端口插有一个红外遥控器。现在我想访问这个Controller。我得到了以下示例代码(没有编程异常,并且没有处理NullPointers,因为我只想看看我的代码是否有效):

public class IRController_Test {

/**
 * @param args the command line arguments
 * @throws javax.usb.UsbException
 */
public static void main(String[] args) throws UsbException {
    UsbServices usbServ = UsbHostManager.getUsbServices();
    UsbHub hub = usbServ.getRootUsbHub();
    List<UsbDevice> list = hub.getAttachedUsbDevices();
    UsbDevice device = null;
    for(UsbDevice dev : list){
        if(dev.getUsbDeviceDescriptor().idVendor() == (short)0x0755 &&
                dev.getUsbDeviceDescriptor().idProduct() == (short)0x2026){
            device = dev;
            System.out.println("Found the port!!");
        }else{
            System.out.println("Not the port!");
        }
    }
    UsbConfiguration config = device.getActiveUsbConfiguration();
    List<UsbInterface> listInf = config.getUsbInterfaces();
    UsbInterface inter = listInf.get(0);
    inter.claim();

}

所以,它找到了端口但是当我调用&#34; inter.claim()&#34;时,我得到了这个例外:

Exception in thread "main" javax.usb.UsbPlatformException: USB error 12: Can't open device Bus 002 Device 003: ID 0755:2026: Operation not supported or unimplemented on this platform
at org.usb4java.javax.ExceptionUtils.createPlatformException(ExceptionUtils.java:39)
at org.usb4java.javax.AbstractDevice.open(AbstractDevice.java:226)
at org.usb4java.javax.AbstractDevice.claimInterface(AbstractDevice.java:406)
at org.usb4java.javax.Interface.claim(Interface.java:102)
at org.usb4java.javax.Interface.claim(Interface.java:93)
at IRController_Test.main(IRController_Test.java:48)

Java结果:1 建立成功(总时间:0秒)

我通过Zadig安装了WinUSB(v6.1.7600.16385)驱动程序,但仍然存在此错误。是否有人可以帮助我? 感谢您的帮助:)

1 个答案:

答案 0 :(得分:1)

我已经使用我的部分设备测试了您的代码。它正在运行。我会说这是一个驱动问题。使用ZADIG,您应该检查菜单项&#34;列出所有设备&#34;那么你必须从下拉列表中选择正确的设备。然后只需按下&#34;替换驱动程序&#34;按钮。

但请注意:如果您这样做,则只能通过Java应用程序与您的设备通信。没有其他应用可以访问该设备了。但是你可以从Windows设备管理器重新安装旧的,如果这应该是一个问题。