web-dev-qa-db-fra.com

Comment l'application peut-elle accéder aux fichiers des stockages USB OTG dans Android 6.0 (API niveau 23) sans root?

Android 6.0 Developer Preview (API niveau 23) peut monter nativement les stockages USB OTG externes amovibles prêts à l'emploi sans aucune application supplémentaire (pour plus d'informations, veuillez consulter: https://www.androidpolice.com/2015/05/28/Android-m-fonctionnalité-spotlight-stockage-externe-peut-être-adopté-comme-vrai-stockage-interne-ou-accédé-normalement-sans-applications-supplémentaires / ).

Lorsque l'utilisateur connecte le stockage USB OTG, il apparaît dans le menu de stockage du système et il est accessible avec le gestionnaire de fichiers intégré. L'utilisateur peut accéder à tous les fichiers sur le stockage externe USB OTG en utilisant le nouveau gestionnaire de fichiers intégré sans droits root.

Lorsque je connecte mon stockage USB OTG à mon Android, il se monte à /storage/A03E-1DF5 et aussi à /mnt/media_rw/A03E-1DF5, mais droits root nécessaires pour accéder à ce dossier.

Je travaille sur Android app lecteur multimédia.

Est-il possible et comment accéder aux fichiers sur les stockages USB OTG sur Android 6.0 dans mon application comme le gestionnaire de fichiers intégré sans droits root?

P.S. J'utilise déjà les fonctions checkSelfPermission et requestPermissions dans mon application et mon application a déjà Android.permission.READ_EXTERNAL_STORAGE et Android.permission.WRITE_EXTERNAL_STORAGE (pour plus d'informations, veuillez consulter: https://www.androidpolice.com/2015/07/15/Android-m-feature-spotlight-apps-now-need-your-permission-to-read -et-écrire-sur-stockage-externe / ), mais il semble que ces autorisations n'affectent que les stockages internes (MicroSD), et pour USB OTG il n'y a pas une telle autorisation granulaire.

20
Vika Apelsinova

Depuis Android 6, selon la documentation SB Media Support , le Storage Access Framework semble être le seul mécanisme disponible:

Dans Android 6.0, tout appareil non adopté est considéré comme portable. […] Les applications tierces doivent passer par le Storage Access Framework pour interagir avec les fichiers sur le stockage portable; l'accès direct est explicitement bloqué pour des raisons de confidentialité et de sécurité.

13
cuihtlauac