public static String prefixDeviceId(UsbDevice usbDevice, String s) { return UsbUtil.toHexString(usbDevice.getUsbDeviceDescriptor().idVendor()) + ":" + UsbUtil.toHexString(usbDevice.getUsbDeviceDescriptor().idProduct()) + ": " + s; }
public static UsbDevice findDevice(UsbHub usbHub) { for (UsbDevice device : usbHub.getAttachedUsbDevices()) { if (device.isUsbHub()) { device = findDevice((UsbHub) device); if (device != null) { return device; } } else { UsbDeviceDescriptor deviceDescriptor = device.getUsbDeviceDescriptor(); if (deviceDescriptor.idVendor() == 0x0403 && deviceDescriptor.idProduct() == 0x6001) { return device; } } } return null; }
// return true if a device is found boolean askForUSBPermission() { UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE); // register someone to listen for "permission granted" dialogs PendingIntent permissionIntent = PendingIntent.getBroadcast(this, 0, new Intent(ACTION_USB_PERMISSION), 0); IntentFilter filter = new IntentFilter(ACTION_USB_PERMISSION); usbListener = new InfiniTAMUSBPermissionListener(); registerReceiver(usbListener, filter); // get a ist of USB devices HashMap<String, UsbDevice> deviceList = manager.getDeviceList(); Iterator<UsbDevice> deviceIterator = deviceList.values().iterator(); // find the depth camera UsbDevice depthCamera = null; while (deviceIterator.hasNext()) { UsbDevice device = deviceIterator.next(); if ((device.getVendorId() == 0x1d27) && (device.getProductId() == 0x0600)) { depthCamera = device; } } if (depthCamera == null) { usbListener = null; return false; } if (manager.hasPermission(depthCamera)) { usbListener.setDeviceWithPermission(depthCamera); } else { manager.requestPermission(depthCamera, permissionIntent); } return true; }
public UsbDevList getDevices(String vendorid) { UsbDevList list = new UsbDevList(); Pointer[] devs = new Pointer[1]; int result = LibUsbLibrary.libUsb.libusb_get_device_list(null, devs); checkError("libusb_get_device_list", result); Pointer[] devices = devs[0].getPointerArray(0L); UsbDevice device = null; for (Pointer usb_device : devices) { if (usb_device != null) { device = new UsbDevice(usb_device); if (device.getVendor().equals(vendorid)) { list.addDevice(device); } } } LibUsbLibrary.libUsb.libusb_free_device_list(devs[0], 1); return list; /*if (device != null) { System.out.println(device.getVendor() + ":" + device.getProduct()); System.out.println("Serial : " + device.getSerial()); System.out.println("Device Configuration :"); System.out.println("Number of configurations " + device.getNbConfig()); Iterator iconfs = device.getConfigurations().iterator(); while (iconfs.hasNext()) { UsbConfiguration c = (UsbConfiguration)iconfs.next(); System.out.println(" Configuration number " + c.getId() + " with " + c.getNbInterfaces() + " interfaces"); Iterator ifaces = c.getInterfaces().iterator(); while (ifaces.hasNext()) { UsbInterface iface = (UsbInterface)ifaces.next(); System.out.println(" Number of alternate settings for interface " + iface.getId() + " : " + iface.getNbInterfaceDescriptors()); Iterator<UsbInterfaceDescriptor>ifdescs = iface.getInterfaceDescriptors().iterator(); while (ifdescs.hasNext()) { UsbInterfaceDescriptor ifdesc = ifdescs.next(); System.out.println(" Number of endpoints for alternate setting " + ifdesc.getId() + " : " + ifdesc.getNbEndpointDescriptors()); Iterator endpoints = ifdesc.getEndpointDescriptors().iterator(); while (endpoints.hasNext()) { UsbEndpointDescriptor endpoint = (UsbEndpointDescriptor)endpoints.next(); if (endpoint.isIn()) this.endpoint_in = endpoint.getEndpoint(); else this.endpoint_out = endpoint.getEndpoint(); System.out.print(" " + (endpoint.isIn() ? "In :" : "Out :")); System.out.println("0x" + Integer.toHexString(endpoint.getEndpoint() & 0xFF)); } } } } byte[] data = null; System.out.println("Reading from device :"); System.out.println("First read"); data = device.bulkRead(); System.out.println("Second read"); data = device.bulkRead(); if (data != null) { System.out.println("Reply :"); System.out.println(new String(data)); } System.out.println("Third read"); data = device.bulkRead(); S1Packet cmd1 = new S1Packet(1, new byte[0], false); System.out.println("Writing to device : " + HexDump.toHex(cmd1.getByteArray())); device.bulkWrite(cmd1.getByteArray()); System.out.println("Reading from device :"); System.out.print("First read : "); data = device.bulkRead(); System.out.print("Second read : "); data = device.bulkRead(); if (data != null) { System.out.println(data.length); System.out.println("Reply :"); String dataS = new String(data); if (dataS.indexOf(";IMEI=")>0) System.out.println(dataS.substring(0, dataS.indexOf(";IMEI=")) + dataS.substring(dataS.indexOf(";MSN="))); else System.out.println(dataS); } System.out.println("Third read : "); data = device.bulkRead(); device.close(); device.destroy(); }*/ }