Visão geral de host e acessório USB

O Android é compatível com uma variedade de periféricos USB e acessórios USB Android (hardware que implementa o protocolo de acessório Android) por meio de dois modos: acessório USB e host USB. No modo de acessório USB, o hardware USB externo atua como host USB. Exemplos de acessórios podem incluir controladores de robótica, estações de base, equipamento de diagnóstico e musical, quiosques, leitores cartão e muito mais. Isso dá aos dispositivos com tecnologia Android que não têm recursos de host a capacidade de interagir com hardware USB. Os acessórios USB para Android precisam ser projetados para funcionar com dispositivos com tecnologia Android e aderir ao protocolo de comunicação de acessórios Android. No modo de host USB, o dispositivo com tecnologia Android funciona como host. Exemplos de dispositivos incluem câmeras digitais, teclados, mouses e controles de jogo. Os dispositivos USB que são projetados para uma ampla gama de apps e ambientes ainda podem interagir com aplicativos para Android que podem se comunicar corretamente com o dispositivo.

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

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 nível 12) ou plataformas mais recentes. O modo de acessório USB também é compatível com o Android 2.3.4 (API nível 10) como uma biblioteca de complementos para oferecer suporte a uma variedade maior de dispositivos. Os fabricantes de dispositivos podem optar por incluir ou não a biblioteca de complementos na imagem do sistema do dispositivo.

Observação: o suporte para os modos de host e acessório USB depende do hardware do dispositivo, independentemente do nível da plataforma. Você pode aplicar filtros para dispositivos compatíveis com host e acessório USB por meio de 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órios ou host USB, é provável que você tenha um hardware USB conectado ao dispositivo com tecnologia Android. Isso impedirá que você tenha uma conexão adb com o dispositivo com tecnologia Android via USB. Você ainda pode acessar adb em uma conexão de rede. Para ativar adb em uma conexão de rede:

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