Я хочу загрузить и сохранить файл из моего URL-адреса во внешнем каталоге загрузки в Android 10. Я использовал этот код для загрузки.
public void StartNewDownload(String url) {
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
request.setDescription("Downloading Profile");
request.setTitle("Abc App");
request.setDestinationInExternalPublicDir(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)+ File.separator, "parag.jpeg");
DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
final long downloadId = manager.enqueue(request);
}
показывает ошибку
E / AndroidRuntime: FATAL EXCEPTION: main Процесс: com.example.ab c, PID: 15197
java.lang.IllegalStateException: Not one of standard directories: /storage/emulated/0/Download/
at android.os.Parcel.createException(Parcel.java:2079)
at android.os.Parcel.readException(Parcel.java:2039)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:188)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:140)
at android.content.ContentProviderProxy.call(ContentProviderNative.java:658)
at android.content.ContentProviderClient.call(ContentProviderClient.java:558)
at android.content.ContentProviderClient.call(ContentProviderClient.java:546)
at android.app.DownloadManager$Request.setDestinationInExternalPublicDir(DownloadManager.java:569)
at com.example.abc.Activity.showDetails.StartNewDownload(showDetails.java:102)
at com.example.abc.Activity.showDetails$1.onClick(showDetails.java:68)
Но если я использую
request.setDestinationInExternalFilesDir(this,Environment.DIRECTORY_DOWNLOADS+ File.separator , "parag.jpeg");
при этом файл загружается, но в папке моего приложения указано c, но я хочу загрузить файл во внешний каталог c download