Android admite una variedad de periféricos USB y accesorios USB de Android (hardware que implementa el protocolo de accesorios de Android) a través de dos modos: accesorio USB y host USB. En el modo de accesorio USB, el hardware USB externo actúa como host USB. Estos son algunos ejemplos de accesorios:
- controles robóticos
- estaciones de conexión
- equipos musicales y de diagnóstico
- kioscos
- lectores de tarjetas
y muchos más. De esta manera, los dispositivos con Android que no tienen capacidades de host pueden interactuar con el hardware USB. Los accesorios USB de Android deben estar diseñados para funcionar con dispositivos que ejecutan Android y deben cumplir con el protocolo de comunicación de accesorios de Android. En el modo de host USB, el dispositivo con Android actúa como host. Algunos ejemplos de dispositivos son cámaras digitales, teclados, mouse y controles de juegos. Los dispositivos USB diseñados para una amplia variedad de aplicaciones y entornos pueden interactuar con aplicaciones para Android que pueden comunicarse correctamente con el dispositivo.
En la figura 1, se muestran las diferencias entre ambos modos. Cuando el dispositivo con Android está en modo de host, actúa como host USB y alimenta el bus. Cuando el dispositivo con Android está en modo de accesorio USB, el hardware USB conectado (en este caso, un accesorio USB de Android) actúa como host y alimenta el bus.
Figura 1: Modo de host USB y de accesorio
Los modos de host y de accesorio USB son directamente compatibles con Android 3.1 (nivel de API 12) o plataformas más recientes. El modo de accesorio USB también se adaptó a Android 2.3.4 (nivel de API 10) como una biblioteca de complementos para admitir una gama más amplia de dispositivos. Los fabricantes de dispositivos pueden elegir si incluir o no la biblioteca de complementos en la imagen del sistema del dispositivo.
Nota: La compatibilidad con los modos de host USB y de accesorio depende, en última instancia, del hardware del dispositivo, independientemente del nivel de plataforma. Puedes filtrar los dispositivos que admiten accesorios y hosts USB mediante un elemento <uses-feature>
.
Consulta la documentación del accesorio y del host USB para obtener más información.
Consideraciones sobre la depuración
Cuando depuras aplicaciones que usan funciones del host o del accesorio USB, lo más probable es que tengas hardware USB conectado a tu dispositivo con Android. De esta manera, no tendrás una conexión adb
con el dispositivo Android mediante USB. Aún puedes acceder a adb
mediante una conexión de red. Para habilitar adb
a través de una conexión de red, sigue estos pasos:
- Conecta el dispositivo con tecnología Android a tu computadora por USB.
- Desde el directorio
platform-tools/
del SDK, ingresaadb tcpip 5555
en el símbolo del sistema. - Ingresa
adb connect <device-ip-address>:5555
. Ahora deberías estar conectado al dispositivo con tecnología Android y puedes emitir los comandosadb
habituales, comoadb logcat
. - Para configurar el dispositivo de modo que escuche mediante USB, ingresa
adb usb
.