2014-04-30 5 views
3

У меня проблема: Я использую usb4java на своем ноутбуке с Windows 8. У меня есть инфракрасный пульт дистанционного управления, подключенный к порту USB. Теперь я хочу, чтобы получить доступ к этой Controller.I получила следующий пример код (Там нет ни одного запрограммированных и исключений NullPointers не обрабатывается, потому что я просто хочу увидеть, если мой код работает):Ошибка UsbInterface

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(); 

}

Так , он находит порт, но когда я называю "inter.claim()", я получаю это исключение:

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 BUILD УСПЕШНОГО (общее время: 0 секунд)

Я установил через Zadig драйвер WinUSB (v6.1.7600.16385), но есть еще эта ошибка. Есть ли кто-нибудь, кто может мне помочь? Спасибо за помощь :)

+0

Это очень похоже на то, что ваша система еще не полностью настроена для включения этого средства доступа к USB. –

+0

И что я могу сделать? – Chris

ответ

1

Я проверил ваш код с некоторыми из моих устройств. Он работает. Я бы сказал, что это проблема с драйвером. С ZADIG вы должны проверить пункт меню «Перечислить все устройства», тогда вам нужно выбрать нужное устройство из выпадающего списка. Затем просто нажмите кнопку «заменить драйвер».

Но будьте осторожны: если вы это сделаете, вы можете общаться только с вашим устройством из приложения Java. Никакие другие приложения больше не могут получить доступ к устройству. Но вы можете просто переустановить старый из диспетчера устройств Windows, если это проблема.

+0

Спасибо, но я по-прежнему заменял драйвер Zadiag, и он не помогает :(Может быть, это проблема, что я использую Windows 8.1? – Chris

+0

Я протестировал ее на Windows 7 - 64bit. – user3422749

+0

Я обнаружил, что о отключении подписание драйвера в Windows 8/8.1 Возможно, это поможет: http://www.nicstorey.co.uk/planeplotter/Disable%20Win%208%20Driver%20Signing – user3422749