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