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