2017-05-25 4 views
0

J'ai un périphérique USB-C SSD connecté à mon Google Pixel. Je peux confirmer qu'il est monté sur l'appareil, car je peux voir le stockage de suppression dans Settings > Storage, mais je ne suis pas sûr de savoir comment lire les fichiers à partir du stockage dans mon application. Je sais que je peux utiliser quelque chose comme FileReader pour le faire mais je ne sais pas quel est le chemin. Sous Linux, je pouvais trouver le stockage USB dans /mnt... mais je ne sais pas ce que Android/Google Pixel faitLecture de fichiers à partir d'un stockage externe USB

+0

Je n'aime pas tomber, mais personne ne l'a fait? – Carpetfizz

Répondre

0

Vous pouvez probablement trouver un chemin en utilisant getExternalFilesDirs(). La dernière entrée sera votre répertoire privé sur la clé USB.

De plus, vous pouvez utiliser Intent.ACTION_OPEN_DOCUMENT_TREE et Intent.ACTION_OPEN_DOCUMENT pour laisser l'utilisateur choisir le lecteur ou un fichier sur le lecteur.

+0

Merci pour la réponse, le premier m'a donné '[/storage/emulated/0/Android/data/com.company.my.app/files]' Pour le second, j'ai fait 'startActivityForResult' sur' Intent i = new Intent (Intent.ACTION_OPEN_DOCUMENT_TREE); 'et obtenu l'URI de l'intention de retour, qui ressemble'/tree/04F8-111C: ', j'ai essayé de faire' File f = new File (uri.getPath) 'et' f.listFiles() 'mais cela retourne' null' – Carpetfizz

+0

Non, l'uri ne ressemble pas à ça. Vous avez utilisé uri.getPath() mais le schéma de contenu est uri.toString(). Et on ne peut pas utiliser la classe File pour un schéma de contenu. – greenapps

+0

Etrange: pourquoi n'avez-vous pas indiqué la valeur du second ou du troisième chemin fourni par getExternalFilesDirs()? Avec eux, vous pouvez utiliser la classe File. – greenapps