La Vista previa para desarrolladores de Android 11 ya está disponible. Pruébala y comparte tus comentarios.

Descripción general del host USB y del accesorio USB

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. Algunos ejemplos de accesorios son controles robóticos, bases de conexión, equipos de diagnóstico y musicales, kioscos y lectores de tarjetas, entre otros. De esta forma, los dispositivos con Android que no están preparados para ser 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 que están diseñados para una amplia gama de aplicaciones y entornos pueden interactuar con aplicaciones para Android que se comunican 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 el host y alimenta el bus.

Figura 1: Modo de host USB y de accesorio

El modo de host y el modo de accesorio USB son directamente compatibles con Android 3.1 (API nivel 12) o plataformas más recientes. El modo de accesorio USB también se adaptó para Android 2.3.4 (API nivel 10) como una biblioteca de complementos a fin de brindar compatibilidad con una gama más amplia de dispositivos. Los fabricantes de dispositivos pueden elegir si desean incluir la biblioteca de complementos en la imagen del sistema del dispositivo.

Nota: La compatibilidad con el modo de host y el de accesorio USB depende en última instancia del hardware del dispositivo, más allá del nivel de la plataforma. Puedes usar un elemento <uses-feature> para filtrar los dispositivos compatibles con el modo de host y el de accesorio USB. 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 las funciones del accesorio o el host USB, lo más probable es que tengas hardware USB conectado al dispositivo con Android. Esto impedirá que se establezca una conexión de adb por USB con el dispositivo que ejecuta Android. No obstante, puedes acceder a adb mediante una conexión de red. Para habilitar adb por conexión de red, realiza lo siguiente:

  1. Conecta el dispositivo con Android a la computadora mediante USB.
  2. Desde el directorio platform-tools/ del SDK, ingresa adb tcpip 5555 en el símbolo del sistema.
  3. Ingresa adb connect <device-ip-address>:5555. Luego de eso, deberías estar conectado al dispositivo con Android y también enviar los comandos de adb habituales, como adb logcat.
  4. Para configurar el dispositivo de modo que escuche mediante USB, ingresa adb usb.