Visão geral de host e acessório USB

O Android oferece suporte a vários periféricos USB e acessórios USB (hardware que implementa o protocolo de acessório Android) usando dois modos: acessório USB e host USB. No modo de acessório USB, o hardware USB externo funciona como o host USB. Exemplos de acessórios podem incluir:

  • controles de robótica
  • bases
  • equipamento de diagnóstico e música
  • quiosques
  • leitores de cartão

e muito mais. Isso permite que dispositivos Android que não têm recursos de host interajam com hardware USB. Os acessórios USB do Android precisam ser projetados para funcionar com dispositivos com tecnologia Android e aderir ao Protocolo de comunicação de acessórios do Android. No modo host USB, o dispositivo Android funciona como host. Exemplos de dispositivos incluem câmeras digitais, teclados, mouses e controles de jogos. Os dispositivos USB projetados para uma ampla variedade de apps e ambientes ainda podem interagir com apps Android que conseguem se comunicar corretamente com o dispositivo.

A Figura 1 mostra as diferenças entre os dois modos. Quando o dispositivo Android está no modo host, ele atua como o host USB e alimenta o barramento. Quando o dispositivo Android está no modo de acessório USB, o hardware USB conectado (nesse caso, um acessório USB Android) atua como o host e alimenta o barramento.

Diagrama mostrando a diferença entre os modos host e acessório

Figura 1. Modos de host e acessório USB

Os modos de acessório e host USB são diretamente compatíveis com o Android 3.1 (API de nível 12) ou plataformas mais recentes. O modo de acessório USB também tem backport para o Android 2.3.4 (API de nível 10) como uma biblioteca de complementos para oferecer suporte a uma variedade maior de dispositivos. Os fabricantes de dispositivos podem escolher se querem ou não incluir a biblioteca de complementos na imagem do sistema do dispositivo.

Observação:o suporte aos modos de host e acessório USB depende do hardware do dispositivo, independente do nível da plataforma. É possível filtrar por dispositivos com suporte a host e acessório USB usando um elemento <uses-feature>. Consulte a documentação do acessório e host USB para mais detalhes.

Considerações sobre depuração

Ao depurar apps que usam recursos de acessório ou host USB, é provável que você tenha um hardware USB conectado ao dispositivo Android. Isso evita que você tenha uma conexão adb com o dispositivo Android usando USB. Você ainda pode acessar o adb com uma conexão de rede. Para ativar adb em uma conexão de rede:

  1. Conecte o dispositivo Android por USB ao computador.
  2. No diretório platform-tools/ do SDK, insira adb tcpip 5555 no prompt de comando.
  3. Insira adb connect <device-ip-address>:5555. Agora, você deve estar conectado ao dispositivo Android e pode emitir os comandos comuns do adb, como adb logcat.
  4. Para configurar seu dispositivo para escutar no USB, insira adb usb.