List of usage examples for android.hardware.usb UsbDevice getInterfaceCount
public int getInterfaceCount()
From source file:org.chromium.latency.walt.Connection.java
public UsbDevice findUsbDevice() { mLogger.log(String.format("Looking for TeensyUSB VID=0x%x PID=0x%x", getVid(), getPid())); HashMap<String, UsbDevice> deviceHash = mUsbManager.getDeviceList(); if (deviceHash.size() == 0) { mLogger.log("No connected USB devices found"); return null; }/*ww w .ja v a 2 s .co m*/ mLogger.log("Found " + deviceHash.size() + " connected USB devices:"); UsbDevice usbDevice = null; for (String key : deviceHash.keySet()) { UsbDevice dev = deviceHash.get(key); String msg = String.format(Locale.US, "USB Device: %s, VID:PID - %x:%x, %d interfaces", key, dev.getVendorId(), dev.getProductId(), dev.getInterfaceCount()); if (dev.getVendorId() == getVid() && dev.getProductId() == getPid()) { usbDevice = dev; msg += " <- using this one."; } mLogger.log(msg); } return usbDevice; }
From source file:org.chromium.latency.walt.BaseUsbConnection.java
public UsbDevice findUsbDevice() { logger.log(String.format("Looking for TeensyUSB VID=0x%x PID=0x%x", getVid(), getPid())); HashMap<String, UsbDevice> deviceHash = usbManager.getDeviceList(); if (deviceHash.size() == 0) { logger.log("No connected USB devices found"); return null; }/*from ww w . jav a 2 s . c o m*/ logger.log("Found " + deviceHash.size() + " connected USB devices:"); UsbDevice usbDevice = null; for (String key : deviceHash.keySet()) { UsbDevice dev = deviceHash.get(key); String msg = String.format(Locale.US, "USB Device: %s, VID:PID - %x:%x, %d interfaces", key, dev.getVendorId(), dev.getProductId(), dev.getInterfaceCount()); if (isCompatibleUsbDevice(dev)) { usbDevice = dev; msg = "Using " + msg; } else { msg = "Skipping " + msg; } logger.log(msg); } return usbDevice; }
From source file:org.ros.android.android_acm_serial.AcmDevice.java
public AcmDevice(UsbDeviceConnection usbDeviceConnection, UsbDevice usbDevice) { Preconditions.checkNotNull(usbDeviceConnection); this.usbDeviceConnection = usbDeviceConnection; // Go through all declared interfaces and automatically select the one that looks // like an ACM interface UsbInterface usbInterface = null;/*from w w w . j a v a 2s .c o m*/ AcmUsbEndpoints acmUsbEndpoints = null; for (int i = 0; i < usbDevice.getInterfaceCount() && acmUsbEndpoints == null; i++) { usbInterface = usbDevice.getInterface(i); Preconditions.checkNotNull(usbInterface); Preconditions.checkState(usbDeviceConnection.claimInterface(usbInterface, true)); acmUsbEndpoints = getAcmEndpoints(usbInterface); } if (acmUsbEndpoints == null) { throw new IllegalArgumentException( "Couldn't find an interface that looks like ACM on this USB device: " + usbDevice); } this.usbInterface = usbInterface; this.usbDevice = usbDevice; usbRequestPool = new UsbRequestPool(usbDeviceConnection); usbRequestPool.addEndpoint(acmUsbEndpoints.getOutgoing(), null); usbRequestPool.start(); outputStream = new AcmOutputStream(usbRequestPool, acmUsbEndpoints.getOutgoing()); inputStream = new AcmInputStream(usbDeviceConnection, acmUsbEndpoints.getIncoming()); }
From source file:com.nps.micro.MainActivity.java
private boolean isExpectedDevice(UsbDevice device) { if (device == null) { return false; }// www . j a va 2s .c o m for (DeviceId devId : deviceIds) { if (devId.equals(device)) { for (int i = 0; i < device.getInterfaceCount(); i++) { if (device.getInterface(i).getInterfaceClass() == UsbConstants.USB_CLASS_CDC_DATA) { return true; } } } } return false; }
From source file:com.dslr.dashboard.PtpService.java
public void searchForUsbCamera() { boolean deviceFound = false; try {//from www.j a va 2 s . c om if (mUsbDevice == null) { Log.d(TAG, "Ptp service usb device not initialized, search for one"); if (mUsbManager != null) { HashMap<String, UsbDevice> devices = mUsbManager.getDeviceList(); Log.d(TAG, "Found USB devices count: " + devices.size()); Iterator<UsbDevice> iterator = devices.values().iterator(); while (iterator.hasNext()) { UsbDevice usbDevice = iterator.next(); Log.d(TAG, "USB Device: " + usbDevice.getDeviceName() + " Product ID: " + usbDevice.getProductId() + " Vendor ID: " + usbDevice.getVendorId() + " Interface count: " + usbDevice.getInterfaceCount()); for (int i = 0; i < usbDevice.getInterfaceCount(); i++) { UsbInterface intf = usbDevice.getInterface(i); Log.d(TAG, "Interface class: " + intf.getInterfaceClass()); if (intf.getInterfaceClass() == android.hardware.usb.UsbConstants.USB_CLASS_STILL_IMAGE) { //mUsbDevice = usbDevice; Log.d(TAG, "Ptp Service imaging usb device found requesting permission"); mUsbManager.requestPermission(usbDevice, mPermissionIntent); deviceFound = true; break; } } if (deviceFound) break; } } else Log.d(TAG, "USB Manager is unavailable"); } else { Log.d(TAG, "Ptp service usb imaging device already present"); //_usbManager.requestPermission(_usbDevice, mPermissionIntent); } } catch (Exception e) { Log.d(TAG, "PtpService search for USB camrea exception: " + e.getMessage()); } }
From source file:fr.bmartel.android.fadecandy.service.FadecandyService.java
/** * Open USB device & choose USBEndpoint. * * @param device Usb device object./*from w ww. j av a 2 s .c om*/ * @return Ubs item composed of USBDevice , USBEndpoint & UsbConnection */ private UsbItem openDevice(UsbDevice device) { UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE); try { UsbDeviceConnection connection = manager.openDevice(device); Log.v("USB", "Device name=" + device.getDeviceName()); UsbInterface intf = null; for (int interfaceIndex = 0; interfaceIndex < device.getInterfaceCount(); interfaceIndex++) { UsbInterface usbInterface = device.getInterface(interfaceIndex); if (usbInterface.getInterfaceClass() == UsbConstants.USB_CLASS_VENDOR_SPEC) { intf = usbInterface; } } if (intf == null) { intf = device.getInterface(0); } UsbEndpoint endpoint = intf.getEndpoint(0); if (connection != null) { connection.claimInterface(intf, true); } else { Log.e(TAG, "USB connection error"); return null; } return new UsbItem(device, connection, endpoint); } catch (IllegalArgumentException e) { } return null; }
From source file:com.googlecode.android_scripting.facade.USBHostSerialFacade.java
/** * openDevice: open the USB device {{{1/*from w w w .j a va2s . com*/ */ private void openDevice(UsbDevice device) { switch (device.getDeviceClass()) { case UsbConstants.USB_CLASS_PER_INTERFACE: // / 78K Trg-USB Serial Log.d("USB openDevice, device => USB_CLASS_PER_INTERFACE"); break; case UsbConstants.USB_CLASS_COMM: // / PIC24 USB CDC Log.d("USB openDevice, device => USB_CLASS_COMM"); break; default: Log.d("USB openDevice, device is not serial..."); return; } UsbSerialConnection conn; try { conn = getConnection(device); } catch (IOException e) { Log.d("USB openDevice, can't get from connections 1"); return; } if (conn == null) { Log.d("USB openDevice, can't get from connections 2"); return; } Log.d("USB openDevice, try to open..."); UsbDeviceConnection connection = mUsbManager.openDevice(device); if (connection == null) { Log.d("connection failed at openDevice..."); // conn.close(); return; } int i, j; Log.d("USB open SUCCESS"); if (conn.mConnection != null) { Log.i("already connected? => stop thread"); conn.stop(); } conn.mConnection = connection; if (options.contains("trg78k")) { Log.d("USB Host Serial: reset the device (trg78k)"); // conn.mConnection.controlTransfer(0x21, 0x22, 0x00, 0, null, 0, 0); byte[] data = { (byte) 0x03, (byte) 0x01 }; conn.mConnection.controlTransfer(0x40, 0x00, 0x00, 0, null, 0, 0); conn.mConnection.controlTransfer(0x40, 0x0b, 0x00, 0, data, 2, 300); } for (i = 0; i < device.getInterfaceCount(); i++) { UsbInterface ui = device.getInterface(i); for (j = 0; j < ui.getEndpointCount(); j++) { Log.d(String.format("EndPoint loop...(%d, %d)", i, j)); UsbEndpoint endPoint = ui.getEndpoint(j); switch (endPoint.getType()) { case UsbConstants.USB_ENDPOINT_XFER_BULK: if (endPoint.getDirection() == UsbConstants.USB_DIR_IN) { conn.mInterfaceIn = ui; conn.mEndpointIn = endPoint; Log.d("USB mEndpointIn initialized!"); } else { conn.mInterfaceOut = ui; conn.mEndpointOut = endPoint; Log.d("USB mEndpointOut initialized!"); } break; case UsbConstants.USB_ENDPOINT_XFER_CONTROL: break; case UsbConstants.USB_ENDPOINT_XFER_INT: conn.mEndpointIntr = endPoint; Log.d("USB mEndpointIntr initialized!"); break; case UsbConstants.USB_ENDPOINT_XFER_ISOC: break; } } } if (options.contains("pl2303")) { Log.d("USB Host Serial: setup device (pl2303)"); int ret; byte[] data = new byte[10]; final byte rdReq = 0x01; final byte rdReqType = (byte) 0xC0; final byte wrReq = 0x01; final byte wrReqType = 0x40; final byte glReq = 0x21; final byte glReqType = (byte) 0xA1; final byte slReq = 0x20; final byte slReqType = (byte) 0x21; final byte bkReq = 0x23; final byte bkReqType = 0x21; int pl2303type = 1; UsbInterface ui = device.getInterface(0); connection.claimInterface(ui, true); /* * try { /// this cause device close by native_claiminterface. Thread.sleep(1000); } catch * (InterruptedException e) { Log.d("USB Host Serial: failed to sleep(1000)"); } */ // / after API Level 13: if (connection.getRawDescriptors()[7] == 64) { // pl2303type = 1; // } connection.controlTransfer(rdReqType, rdReq, 0x8484, 0, data, 1, 100); connection.controlTransfer(wrReqType, wrReq, 0x0404, 0, null, 0, 100); connection.controlTransfer(rdReqType, rdReq, 0x8484, 0, data, 1, 100); connection.controlTransfer(rdReqType, rdReq, 0x8383, 0, data, 1, 100); connection.controlTransfer(rdReqType, rdReq, 0x8484, 0, data, 1, 100); connection.controlTransfer(wrReqType, wrReq, 0x0404, 1, null, 0, 100); connection.controlTransfer(rdReqType, rdReq, 0x8484, 0, data, 1, 100); connection.controlTransfer(rdReqType, rdReq, 0x8383, 0, data, 1, 100); connection.controlTransfer(wrReqType, wrReq, 0x0000, 1, null, 0, 100); connection.controlTransfer(wrReqType, wrReq, 0x0001, 0, null, 0, 100); // **type HX** // device class != 2 // packet size == 64 if (pl2303type == 1) { connection.controlTransfer(wrReqType, wrReq, 0x0002, 0x44, null, 0, 100); } else { connection.controlTransfer(wrReqType, wrReq, 0x0002, 0x24, null, 0, 100); } /* * // reset the device (HX) if (type != 2) { // TODO: halt } else { * connection.controlTransfer(wrReqType, wrReq, 0x0008, 0, null, 0, 100); * connection.controlTransfer(wrReqType, wrReq, 0x0009, 0, null, 0, 100); } */ // initilize serial ret = connection.controlTransfer(glReqType, glReq, 0x0000, 0x00, data, 7, 100); Log.d(String.format("pl2303: GetLineRequest: %x => %x-%x-%x-%x-%x-%x-%x", ret, data[0], data[1], data[2], data[3], data[4], data[5], data[6])); // ret = connection.controlTransfer(wrReqType, wrReq, 0x0000, 0x01, null, 0, 100); // Log.d(String.format("pl2303: WriteRequest: %x", ret)); int baud = 9600; data[0] = (byte) (baud & 0xFF); data[1] = (byte) ((baud >> 8) & 0xFF); data[2] = (byte) ((baud >> 16) & 0xFF); data[3] = (byte) ((baud >> 24) & 0xFF); data[4] = 0; // stopbit: 1bit, 1: 1.5bits, 2: 2bits data[5] = 0; // parity: None, 1:odd, 2:even, 3:mark, 4:space data[6] = 8; // data size: 8, 5, 6, 7 data[7] = 0x00; ret = connection.controlTransfer(slReqType, slReq, 0x0000, 0x00, data, 7, 100); Log.d(String.format("pl2303: SetLineRequest: %x", ret)); // set break off ret = connection.controlTransfer(bkReqType, bkReq, 0x0000, 0x00, null, 0, 100); if (pl2303type == 1) { // for RTSCTS and HX device ret = connection.controlTransfer(wrReqType, wrReq, 0x0000, 0x61, null, 0, 100); } else { // for not RTSCTS ret = connection.controlTransfer(wrReqType, wrReq, 0x0000, 0x00, null, 0, 100); } // connection.releaseInterface(ui); } if (!conn.isConnected()) { connectionFailed(); return; } conn.start(); }