-1
我目前正在爲需要檢測Oculus設備是否插入的項目工作。JNI依賴和跨平臺構建
我這樣做使用usb4java庫usb4java。
<dependency> <groupId>org.usb4java</groupId> <artifactId>usb4java-javax</artifactId> <version>1.2.0</version> </dependency>
我想建立使用Maven和詹金斯,這是安裝在Ubuntu的服務器上我的節目,但我面對這個庫的一個問題:如果我的程序正在使用此機內置,我的功能不工作,但如果我在Windows上編譯它,我的功能就像一個魅力。
這裏是我使用的功能:
if (hub == null) {
UsbServices services = UsbHostManager.getUsbServices();
hub = services.getRootUsbHub();
}
//List all the USBs attached
List devices = hub.getAttachedUsbDevices();
Iterator iterator = devices.iterator();
boolean res = false;
while (iterator.hasNext()) {
UsbDevice device = (UsbDevice) iterator.next();
UsbDeviceDescriptor desc = device.getUsbDeviceDescriptor();
if (device.isUsbHub()) {
res = res || isOculusPlugged((UsbHub) device);
}
else {
try {
if (desc.idVendor() == 10291) {
res = true;
}
} catch (NullPointerException ignored) {}
}
}
我沒有得到任何錯誤,但是檢測只是不工作(RES始終是假的),與Linux內置版本。
我檢查過,包括Windows在內的所有JNI庫在我運行的JAR-With-Dependencies中。
感謝您的幫助, 盧卡斯
的問題? http://stackoverflow.com/questions/13450673/usb-detection-for-linux-os-using-java – javaguest