Я наше приложение (Xamarin C#) мы загружаем файлы с сервера. В конце succeful загрузки мы получаем URI для вновь загруженного файла и из URI мы получаем путь к файлу:Android 6 получить путь к скачиваемому файлу
Android.Net.Uri uri = downloadManager.GetUriForDownloadedFile(entry.Value);
path = u.EncodedPath;
В Android 4.4.2 и Android 5, и URI путь выглядеть следующим образом:
uri="file:///storage/emulated/0/Download/2.zip"
path = u.EncodedPath ="/storage/emulated/0/Download/2.zip"
затем мы используем путь для обработки файла. Проблема заключается в том, что в Android 6 (на реальном Nexus телефон), мы получаем совершенно иной и URI путь:
uri="content://downloads/my_downloads/2802"
path="/my_downloads/2802"
Это разбивает мой код, бросая исключение FileNotFound. Обратите внимание, что загруженный файл существует и находится в папке «Загрузки». Как я могу использовать URI, который я получаю с Android 6, чтобы получить правильный путь к файлу, чтобы я мог в файл и обрабатывать его?
Спасибо, [email protected]
Это было построено с SDK 22 – user1523271
Попробованная как с SDK 22 и 23, такой же результат – user1523271