import java.util.List;
import javax.usb.*;
import javax.usb.event.UsbServicesEvent;
import javax.usb.event.UsbServicesListener;
public class Usbinfo implements UsbServicesListener {
private static Usbinfo instance;
private UsbServices usbServices;
private Usbinfo() {
try {
usbServices = UsbHostManager.getUsbServices();
usbServices.addUsbServicesListener(this);
} catch (UsbException e) {
e.printStackTrace();
}
}
public static Usbinfo getInstance() {
if (instance == null) {
instance = new Usbinfo();
}
return instance;
}
@Override
public void usbDeviceAttached(UsbServicesEvent usbServicesEvent) {
UsbDevice device = usbServicesEvent.getUsbDevice();
System.out.println("USB device attached: " + device);
}
@Override
public void usbDeviceDetached(UsbServicesEvent usbServicesEvent) {
UsbDevice device = usbServicesEvent.getUsbDevice();
System.out.println("USB device detached: " + device);
}
public List<UsbDevice> getConnectedDevices() {
return usbServices.getRootUsbHub().getAttachedUsbDevices();
}
public static void main(String[] args) {
Usbinfo usbinfo = Usbinfo.getInstance();
List<UsbDevice> connectedDevices = usbinfo.getConnectedDevices();
for (UsbDevice device : connectedDevices) {
System.out.println(device);
}
}
}