Panoramica dell'host e degli accessori USB

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.

Diagramma che mostra la differenza tra le modalità host e accessorio

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:

  1. Collega il dispositivo Android al computer tramite USB.
  2. Dalla directory platform-tools/ dell'SDK, inserisci adb tcpip 5555 al prompt dei comandi.
  3. Inserisci adb connect <device-ip-address>:5555 Ora dovresti essere connesso al dispositivo Android e puoi inviare i soliti comandi adb, ad esempio adb logcat.
  4. Per impostare il dispositivo per l'ascolto tramite USB, inserisci adb usb.