Не удается загрузить файл с помощью Android DownloadManager во внешнее хранилище на Samsung Galaxy S9, S9 + на Android 9 (Pie).
Загрузка работает для устройств Samsung с Android 8 или других устройств с Android 9 (например,Пиксель 2)
Я добавил к манифесту следующие разрешения:
"android.permission.WRITE_EXTERNAL_STORAGE",
"android.permission.READ_EXTERNAL_STORAGE",
"android.permission.INTERNET"
Я также запросил разрешения READ / WRITE_EXTERNAL_STORAGE во время выполнения.
Путь к файлу:/storage/4295-DDD5/Android/data/com.example.myapplication/files/filename.file
и этот путь к файлу существует, я создал его с помощью обозревателя файлов устройств AndroidStudio
Метод, который создает загрузку:
public void downloadFile(String url, String filePath) {
DownloadManager mDownloadManager =
(DownloadManager)context.getSystemService(Context.DOWNLOAD_SERVICE);
DownloadManager.Request request = new
DownloadManager.Request(Uri.parse(url));
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_MOBILE |
DownloadManager.Request.NETWORK_WIFI);
request.setVisibleInDownloadsUi(true);
request.setDestinationUri(Uri.parse("file://" + filePath));
mDownloadManager.enqueue(request);
}
Ожидаемый результат - загрузка указанногоВместо этого я получаю следующие ошибки в журналах:
D/DownloadManager: [8616] Starting com.example.myapplication
W/DownloadManager: [8616] Stop requested with status FILE_ERROR: Failed to generate filename: java.io.IOException: Permission denied
D/DownloadManager: [8616] Finished with status WAITING_TO_RETRY
V/DownloadManager: MIME Type = application/octet-stream
I/DownloadManager: Download 8616 finished with status WAITING_TO_RETRY
I/DownloadManager: Notification Clear Download 1:com.example.myapplication