Я использую этот метод, чтобы получить путь к файлу из URI:Ошибка получения пути изображения из папки Download Android
public String getPath(Uri uri) {
Cursor cursor = getContentResolver().query(uri, null, null, null, null);
cursor.moveToFirst();
String document_id = cursor.getString(0);
document_id = document_id.substring(document_id.lastIndexOf(":") + 1);
cursor.close();
cursor = getContentResolver().query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
null, MediaStore.Images.Media._ID + " = ? ", new String[]{document_id}, null);
cursor.moveToFirst();
String path = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA));
cursor.close();
return path;
}
Если я пытаюсь получить путь к файлу из файла образа из галереи отлично работает. Но, когда я пытаюсь получить файл пути из файла изображения из папки «Загрузить», он не работает. Какие-либо предложения. Заранее большое спасибо.
Hi CommonsWare. Большое вам спасибо за ваш действительно хороший ответ. После выбора изображения, Uri возвращается обратно правильно. Но когда я пытаюсь получить фактический путь этого изображения в папке donwload, он сработает. Проблема, похоже, связана именно с этой конкретной папкой. Я не знаю, как управлять с ContentResolver или openInputStream(). Итак, как я могу получить фактическое местоположение в этой папке? – agustincola
@ agustincola: «Как я могу получить фактическое местоположение в этой папке?» - Нет. Вы используете 'Uri' для доступа к потокам, связанным с контентом, используя' ContentResolver'. Это должно быть описано в вашей книге разработчика Android или курсе. Это также описано в [документации] (https://developer.android.com/training/secure-file-sharing/request-file.html). – CommonsWare
Хорошо. Спасибо за ваше время. – agustincola