我正在尝试让 usb4java 包工作。我得到了基本连接,但是当我尝试获取产品、序列号或制造商时,我收到 USB 错误 12 或 8。我想我可能把库搞砸了。
我正在使用 Win 7 Pro 64 位操作系统 Service Pack 1。Eclipse 版本:Luna Service Release 2 (4.4.2) Build id:20150219-0600。
以下是我拥有的库:
编码:
` 导入 java.io。; 导入 java.util。; 导入 javax.usb.*;
public class PrettyUSBDeviceLister
{
public static void main(String[] args) throws UnsupportedEncodingException, UsbException
{
UsbServices services = UsbHostManager.getUsbServices();
UsbHub root = services.getRootUsbHub();
System.out.println(" USB Root Hub: ");
listDevices(root);
} // main
public static void listDevices(UsbHub hub)
{
String prod = "";
String sn = "";
String man = "";
List<UsbDevice> devices = hub.getAttachedUsbDevices();
Iterator<UsbDevice> iterator = devices.iterator();
while ( iterator.hasNext())
{
UsbDevice device = iterator.next();
if((device.isUsbHub()))
{
System.out.println("HUB: ");
listDevices((UsbHub)device);
}
try {
prod = device.getProductString();
} catch (UnsupportedEncodingException e) {
prod = "UEE";
} catch (UsbException e) {
String ts = e.getLocalizedMessage();
System.out.println(" USB e L msg = "+ts);
prod = "UsbException\n " + e.toString();
} catch (UsbDisconnectedException e) {
prod = "USBdis";
}
System.out.println("Product : "+prod);
try {
sn = device.getSerialNumberString();
--similar to the above--
}
System.out.println("Serial #: "+sn);
try {
man = device.getManufacturerString();
--similar to the above--
}
System.out.println("Manufact: "+man);
System.out.println();
}
System.out.println(" ... end Hub ....");
} // static void listdevices(UsbHub root)
} // class PrettyUSBDeviceLister
` 我已包含以下错误之一。对于获取产品、序列号或制造商的所有调用,我收到错误 8、13 或 NULL,
程序输出:
USB Root Hub:
USB e L msg = USB 错误 12:无法打开设备总线 008 设备 002:ID 1058:1078:此平台上不支持或未实现操作 产品:UsbException USB 错误 12 序列号:UsbException USB 错误 12 javax.usb.UsbPlatformException :USB 错误 12:无法打开设备总线 008 设备 002:ID 1058:1078:在 org.usb4java 的 org.usb4java.javax.ExceptionUtils.createPlatformException(ExceptionUtils.java:39) 的此平台上不支持或未实现操作。 javax.AbstractDevice.open(AbstractDevice.java:226) at org.usb4java.javax.AbstractDevice.getLanguages(AbstractDevice.java:538) at org.usb4java.javax.AbstractDevice.getUsbStringDescriptor(AbstractDevice.java:507) at org.usb4java .javax.AbstractDevice.getString(AbstractDevice.java:526) 在 org.usb4java.javax.AbstractDevice.getManufacturerString(AbstractDevice.java:304) 在 PrettyUSBDeviceLister.listDevices(PrettyUSBDeviceLister.java:65) 在 PrettyUSBDeviceLister.main(PrettyUSBDeviceLister.java:17) 制造商:UsbException USB 错误 12
USB e L msg = USB 错误 8:无法获取字符串描述符语言:溢出产品:UsbException USB 错误 8:序列号:null javax.usb.UsbPlatformException:USB 错误 8:无法获取字符串描述符语言:org.usb4java 溢出.javax.ExceptionUtils.createPlatformException(ExceptionUtils.java:39) 在 org.usb4java.javax.AbstractDevice.getLanguages(AbstractDevice.java:544) 在 org.usb4java.javax.AbstractDevice.getUsbStringDescriptor(AbstractDevice.java:507) 在 org. usb4java.javax.AbstractDevice.getString(AbstractDevice.java:526) at PrettyUSBDeviceLister.listDevices(PrettyUSBDeviceLister.java:65) at PrettyUSBDeviceLister.main(PrettyUSBDeviceLister.java) :17) 制造商:UsbException USB 错误 8:
如何避免这种情况并获取读取数据?
谢谢你的帮助克里夫