Come rilevare se Android ha un supporto USB completo o no?

La mia applicazione usa UsbManager per comunicare con le fotocamere USB. Alcuni dispositivi non dispongono di supporto USB. Questi restituiranno null per (UsbManager)context.getSystemService( Context.USB_SERVICE ) , oppure (UsbManager)context.getSystemService( Context.USB_SERVICE ) quando vengono elencati i dispositivi. Posso rilevare entrambi e mostrare correttamente un messaggio. Purtroppo, alcuni Androidi che non rilevano i dispositivi USB non causano uno di questi problemi. Basta restituire un elenco vuoto di dispositivi USB. Come posso rilevare correttamente che questo sistema non support USB OTG?

  • ScrollView orizzontale nell'elenco di visualizzazione di elenco Android
  • Software di riconoscimento vocale di Open Source in Java
  • Applicazione Android integrata con Google OK
  • Implementare la discussione Android nella mia class?
  • RecyclerView non si scorra come previsto
  • Come faccio a sapere se la mia applicazione è in esecuzione con Robolectric?
  • Alternative per DatatypeConverter in Android
  • Il metodo getText () non è definito per l'errore tipo String
  • Le windows di dialogo Android stanno causando android.view.WindowManager $ BadTokenException: Imansible aggiungere la window
  • Messaggio di errore: Questo SDK di Android richiede la versione Android 22.6.1 o superiore di Android Developer Toolkit
  • Ottenere SSLHandShakeException
  • Differenza esatta tra "Content-Provider" e "Database SQLite"
  • 2 Solutions collect form web for “Come rilevare se Android ha un supporto USB completo o no?”

    Il modo ufficiale per determinare se il dispositivo dispone di capacità host USB è quello di utilizzare la funzionalità di sistema associata.

    Idealmente, aggiungere un elemento <uses-feature> al tuo manifesto, indicando che sei interessato alla funzionalità android.hardware.usb.host . Se non hai assolutamente bisogno di questa funzionalità, aggiungi android:required="false" come attributo.

    Se sei andato con android:required="false" e vuoi determinare se il dispositivo è un host USB in fase di runtime, utilizza hasSystemFeature() , hasSystemFeature() e FEATURE_USB_HOST . FEATURE_USB_HOST è definito come la stessa string che si utilizzerebbe in <uses-feature> ( android.hardware.usb.host ).

     public static boolean getUsbConnection(Context context) { intent = context.registerReceiver(null, new IntentFilter("android.hardware.usb.action.USB_STATE")); return intent.getExtras().getBoolean("connected"); } 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.