Я хотел бы получить полный путь к файлу из URI. URI - это не изображение, а музыкальный файл, но если я сделаю это как решение MediaStore, он не будет работать, если пользователь приложения выберет, например, Astro в качестве браузера вместо музыкального проигрывателя. Как мне решить эту проблему?
100
content://
или любым другим нефайловым Uri.Метод PathUtil будет работать только в oreo ниже, и если это oreo, вероятно, произойдет сбой, потому что в oreo мы не получим идентификатор, а весь путь в data.getData (), поэтому все, что вам нужно сделать, это создать файл из uri и получить его путь из getPath () и разделить его. ниже - рабочий код: -
Приведенный выше код будет работать в oreo, и если он ниже oreo, то PathUtil будет работать. Спасибо!
PathUtil.java
источник
Получить путь из URI. Используйте класс ниже для всех версий Android. доступ к любому типу файла .
источник
Попробуй это.
источник
null
Вы можете использовать получение пути к файлу из разных версий SDk
Используйте для этого RealPathUtils
** Теперь получите путь к файлу из URI **
источник
один из ответов, который существует на текущей странице ( это ), правильный, но в нем есть некоторые ошибки. например, он не будет работать на устройствах с API 29+. Я обновлю приведенный выше код и выложу его новую версию. Думаю, этот пост следует отметить как окончательный ответ.
Обновленный код: ( добавлена поддержка WhatsApp )
источник
в файле build.gradle добавьте это
Теперь позвоните
FileUtils.getPath(context, uri);
из вашего основного класса.источник
Я знаю, что на это уже был дан ответ, но в комментариях есть некоторые проблемы. Я нашел отличное надежное решение, разветвленное отсюда
использовать это
File file=FileUtils.getFile(uri);
источник
Код фрагмента при получении пути к файлу.
Bellow - это класс, к которому можно получить доступ, создав новый объект. вам также нужно будет добавить к зависимости в gradel
implementation 'org.apache.directory.studio:org.apache.commons.io:2.4'
источник
Чтобы получить любой путь к файлу, используйте это (взято из https://github.com/iPaulPro/aFileChooser )
источник
Мне было трудно понять это на Xamarin. Из приведенных выше предложений я пришел к этому решению.
источник
Android 7.0
Column_Index - это-1
когда вы выбираете файл, используяActionContentGet
и вводите,*/*
скажем, PDFОтвет @SAParkhid на котлине.
источник
источник