Вот код:
try {
DownloadManager dm;
dm = (DownloadManager)getApplicationContext().getSystemService(DOWNLOAD_SERVICE);
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(DOWNLOAD_URL));
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE)
.setAllowedOverRoaming(false)
.setTitle("Download")
.setDestinationInExternalPublicDir(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getPath()
,"file.jpg");
Log.d("DEBUG", Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getPath() );
dm.enqueue(request);
}catch (Exception e){
Toast.makeText(this, "Error", Toast.LENGTH_LONG).show();
}
Разрешения все получены, но файл не качается:
Logcat:
E/ActivityThread: Service com.android.providers.downloads.DownloadJobService has leaked IntentReceiver com.android.providers.downloads.DownloadReceiver@1ebc5cc that was originally registered here. Are you missing a call to unregisterReceiver()?
android.app.IntentReceiverLeaked: Service com.android.providers.downloads.DownloadJobService has leaked IntentReceiver com.android.providers.downloads.DownloadReceiver@1ebc5cc that was originally registered here. Are you missing a call to unregisterReceiver()?
at android.app.LoadedApk$ReceiverDispatcher.<init>(LoadedApk.java:1355)
at android.app.LoadedApk.getReceiverDispatcher(LoadedApk.java:1134)
at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1421)
at android.app.ContextImpl.registerReceiver(ContextImpl.java:1394)
at android.app.ContextImpl.registerReceiver(ContextImpl.java:1382)
at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:609)
at addon.sprd.downloadprovider.AddonDownloadsDRMUtils.notifyDownloadCompleted(AddonDownloadsDRMUtils.java:302)
at com.android.providers.downloads.DownloadThread.run(DownloadThread.java:504)
Весь Google перерыл, но везде одни и те же примеры. На SO у всех работает, правда ответы 2017-2019 годов, а я вижу, что с каждым годом гугл всё усложняет разработку приложений.
Я думал, что DownloadManager должен упрощать загрузку файлов, но видимо - нет.
Так почему в данный момент данный пример не работает? Может есть ли у кого минимальный рабочий пример? Или лучше забросить этот "менеджер", и использовать OkHttp?