Android supporta una vasta gamma di periferiche USB e accessori USB Android (hardware che implementa il protocollo degli accessori Android) tramite due modalità: accessorio USB e host USB. In modalità accessorio USB, l'hardware USB esterno funge da host USB. Ecco alcuni esempi di accessori:
- controller di robotica
- stazioni di ricarica
- apparecchiature musicali e diagnostiche
- chioschi
- lettori di schede
e molto altro. In questo modo i dispositivi con piattaforma Android privi di capacità host possono interagire con l'hardware USB. Gli accessori USB Android devono essere progettati per funzionare con i dispositivi Android e rispettare il protocollo di comunicazione degli accessori Android. In modalità host USB, il dispositivo Android funge da host. Alcuni esempi di dispositivi sono fotocamere digitali, tastiere, mouse e controller di gioco. I dispositivi USB progettati per una vasta gamma di applicazioni e ambienti possono comunque interagire con le app Android in grado di comunicare correttamente con il dispositivo.
La Figura 1 mostra le differenze tra le due modalità. Quando il dispositivo Android è in modalità host, funge da host USB e alimenta il bus. Quando il dispositivo Android è in modalità accessorio USB, l'hardware USB collegato (un accessorio USB Android in questo caso) funge da host e alimenta il bus.
Figura 1. Modalità host USB e accessori
Le modalità accessorio e host USB sono supportate direttamente su Android 3.1 (livello API 12) o sulle piattaforme successive. Viene inoltre eseguito il backporting della modalità accessorio USB su Android 2.3.4 (livello API 10) come libreria aggiuntiva per supportare una gamma più ampia di dispositivi. I produttori di dispositivi possono scegliere se includere o meno la libreria di componenti aggiuntivi nell\'immagine di sistema del dispositivo.
Nota: il supporto delle modalità host e accessori USB dipende in ultima analisi dall\'hardware del dispositivo, a prescindere dal livello della piattaforma. Puoi filtrare i dispositivi che supportano l'host e l'accessorio USB tramite un elemento <uses-feature>
.
Per ulteriori dettagli, consulta la documentazione relativa agli accessori e all'host USB.
Considerazioni sul debug
Durante il debug di applicazioni che utilizzano funzioni host o accessori USB, è molto probabile che l'hardware USB sia collegato al dispositivo Android. In questo modo eviti di avere una connessione adb
al dispositivo Android tramite USB. Puoi comunque accedere a adb
tramite una connessione di rete. Per abilitare adb
tramite una connessione di rete:
- Collega il dispositivo Android al computer tramite USB.
- Dalla directory
platform-tools/
dell'SDK, inserisciadb tcpip 5555
al prompt dei comandi. - Inserisci
adb connect <device-ip-address>:5555
Ora dovresti essere connesso al dispositivo Android e puoi inviare i soliti comandiadb
, ad esempioadb logcat
. - Per impostare il dispositivo per l'ascolto tramite USB, inserisci
adb usb
.