Android SDK: cómo leer la clase de un dispositivo USB?
He intentado escribir la actividad primitiva para escanear el puerto del USB y exhibir la información básica para el dispositivo atado. Estoy específicamente interesado en la clase de dispositivo de lectura, que creo que el método UsbDevice.getDeviceClass () está destinado. Esto es lo que parece:
HashMap<String, UsbDevice> deviceList = findUsbDevices(); Iterator<UsbDevice> deviceIterator = deviceList.values().iterator(); if (deviceIterator.hasNext()) { UsbDevice device = deviceIterator.next(); String name = device.toString(); String cls = Integer.toString(device.getDeviceClass()); displayDeviceInfo(name, cls); }
Sin embargo, no funciona como se esperaba, dando 0 para cualquier dispositivo que conecto. Muchos otros campos de objeto UsbDevice, como subclase o protocolo, también son 0. ¿Cómo puedo obtener la clase de dispositivo entonces?
- Android USB OTG: por programación, apague la alimentación del puerto
- ¿Dispositivos USB externos a teléfonos Android?
- ¿Cómo puedo determinar la longitud de los bytes recibidos del método UsbRequest.queue (..)?
- Cómo usb -conecta dispositivos android con adb bajo ubuntu
- Debugging con Android USB en VirtualBox
- Android USB Host - bulkTransfer () está perdiendo datos
- ¿Es posible identificar el modo de comunicación USB mediante programación?
- ¿Cómo comunicarse con un dispositivo USB?
- Comunicación USB con Android / Arduino
- HttpClient de Android que envía la petición a la máquina de anfitrión sobre USB
- ¿Conexión USB host-a-serie Android?
- USB_DEVICE_ATTACHED Intento de no disparar
- ¿Es posible programar Android para actuar como teclado físico USB?
La clase USB es el atributo de la interfaz, no del dispositivo. Las interfaces de iteración funcionan como se esperaba:
int count = device.getInterfaceCount(); for (int i = 0; i < count; i++) { UsbInterface iface = device.getInterface(i); int cls = iface.getInterfaceClass(); }