Чтение файлов с внешнего USB-накопителя

У меня есть SSD-накопитель USB-C, подключенный к моему Google Pixel. Я могу подтвердить, что он подключен к устройству, потому что я вижу хранилище для удаления в Settings > Storage, но я не уверен, как читать файлы из хранилища в моем приложении. Я знаю, что могу использовать для этого что-то вроде FileReader, но я не Не знаю, каков путь. В Linux я мог найти USB-накопитель в /mnt..., но я не знаю, что делает Android / Google Pixel.


person Carpetfizz    schedule 25.05.2017    source источник
comment
Не люблю натыкаться, но разве этого никто не делал?   -  person Carpetfizz    schedule 25.05.2017


Ответы (1)


Вероятно, вы можете найти путь с помощью getExternalFilesDirs (). Последняя запись будет вашим личным каталогом на флешке.

Кроме того, вы можете использовать Intent.ACTION_OPEN_DOCUMENT_TREE и Intent.ACTION_OPEN_DOCUMENT, чтобы пользователь мог выбрать диск или файл на диске.

person greenapps    schedule 25.05.2017
comment
Спасибо за ответ, первый дал мне [/storage/emulated/0/Android/data/com.company.my.app/files] Для второго я сделал startActivityForResult на Intent i = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE); и получил URI из возвращаемого намерения, которое выглядит как /tree/04F8-111C:, я пытался сделать File f = new File(uri.getPath) и f.listFiles(), но это вернуло null - person Carpetfizz; 25.05.2017
comment
Нет, ури так не выглядит. Вы использовали uri.getPath (), но схема содержимого - uri.toString (). И нельзя использовать класс File для схемы содержимого. - person greenapps; 25.05.2017
comment
Странно: почему вы не указали значение для второго или третьего пути, предоставленного getExternalFilesDirs ()? С ними вы можете использовать класс File. - person greenapps; 25.05.2017
comment
этот ответ действительно помог мне решить вопрос - person Carpetfizz; 25.05.2017