Olá, pessoal!
Estou tentando fazer um aplicativo que monitore as portas USB e, quando eu inserir um pen drive, ele detecte o dispositivo.
Estou usando o jUSB em Windows XP (www.steelbrothers.ch/jusb/), mas está me retornando o seguinte erro quando eu coloco o pen drive no computador:
Exception in thread "USB-Watcher" java.lang.ArrayIndexOutOfBoundsException: 1
at usb.core.Descriptor.getU8(Descriptor.java:182)
at usb.core.Descriptor.getDescriptorType(Descriptor.java:65)
at usb.core.DeviceDescriptor.<init>(DeviceDescriptor.java:51)
at usb.windows.NonJUSB.<init>(NonJUSB.java:48)
at usb.windows.DeviceImpl.enumerateHubPorts(DeviceImpl.java:490)
at usb.windows.DeviceImpl.checkChildren(DeviceImpl.java:686)
at usb.windows.DeviceImpl.enumerateHubPorts(DeviceImpl.java:552)
at usb.windows.DeviceImpl.<init>(DeviceImpl.java:141)
at usb.windows.NonJUSB.<init>(NonJUSB.java:27)
at usb.windows.USB.scanBus(USB.java:196)
at usb.windows.Windows$Watcher.scan(Windows.java:301)
at usb.windows.Windows$Watcher.run(Windows.java:229)
at java.lang.Thread.run(Thread.java:662)
Segue o código abaixo:
[code]
public void initUsbListeners() throws IOException {
Host host = HostFactory.getHost();
if (host == null) {
return;
}
host.addUSBListener(new ControllerUSBListener() {
@Override
public void busAdded(Bus bus) throws IOException {
super.busAdded(bus);
}
@Override
public void busRemoved(Bus bus) throws IOException {
super.busRemoved(bus);
}
@Override
public void deviceAdded(Device dev) throws IOException {
super.deviceAdded(dev);
}
@Override
public void deviceRemoved(Device dev) throws IOException {
super.deviceRemoved(dev);
}
});
}[/code]
Como podem ver, o erro não é no meu código.
Por favor, me ajudem a encontrar uma solução.
Obrigada