У меня есть SSD-накопитель USB-C, подключенный к моему Google Pixel. Я могу подтвердить, что он подключен к устройству, потому что я вижу хранилище для удаления в Settings > Storage
, но я не уверен, как читать файлы из хранилища в моем приложении. Я знаю, что могу использовать для этого что-то вроде FileReader, но я не Не знаю, каков путь. В Linux я мог найти USB-накопитель в /mnt...
, но я не знаю, что делает Android / Google Pixel.
Чтение файлов с внешнего USB-накопителя
comment
Не люблю натыкаться, но разве этого никто не делал?
- person Carpetfizz   schedule 25.05.2017
Ответы (1)
Вероятно, вы можете найти путь с помощью getExternalFilesDirs (). Последняя запись будет вашим личным каталогом на флешке.
Кроме того, вы можете использовать Intent.ACTION_OPEN_DOCUMENT_TREE и Intent.ACTION_OPEN_DOCUMENT, чтобы пользователь мог выбрать диск или файл на диске.
person
greenapps
schedule
25.05.2017
Спасибо за ответ, первый дал мне
[/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
Нет, ури так не выглядит. Вы использовали uri.getPath (), но схема содержимого - uri.toString (). И нельзя использовать класс File для схемы содержимого.
- person greenapps; 25.05.2017
Странно: почему вы не указали значение для второго или третьего пути, предоставленного getExternalFilesDirs ()? С ними вы можете использовать класс File.
- person greenapps; 25.05.2017
этот ответ действительно помог мне решить вопрос
- person Carpetfizz; 25.05.2017