I'm trying to use Android DownloadManager class this way: super.onCreate(savedInstanceState); setContentView(R.layout.main);
Request r = new Request(Uri.parse("http://url"));
r.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "file.ext"); // also tried all other possible ways to set up destination
DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
dm.enqueue(r);
On the last line, dm.enqueue(r)
the application crashes. Logcat error:
05-12 13:53:55.408: E/JavaBinder(6814): *** Uncaught remote exception! (Exceptions are not yet supported across processes.)
05-12 13:53:55.408: E/JavaBinder(6814): java.lang.NoSuchMethodError: getExternalStorages
05-12 13:53:55.408: E/JavaBinder(6814): at com.android.providers.downloads.Helpers.isFilenameValid(Helpers.java:652)
05-12 13:53:55.408: E/JavaBinder(6814): at com.android.providers.downloads.DownloadProvider.checkFileUriDestination(DownloadProvider.java:613)
05-12 13:53:55.408: E/JavaBinder(6814): at com.android.providers.downloads.DownloadProvider.insert(DownloadProvider.java:500)
05-12 13:53:55.408: E/JavaBinder(6814): at android.content.ContentProvider$Transport.insert(ContentProvider.java:198)
05-12 13:53:55.408: E/JavaBinder(6814): at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:146)
05-12 13:53:55.408: E/JavaBinder(6814): at android.os.Binder.execTransact(Binder.java:324)
05-12 13:53:55.408: E/JavaBinder(6814): at dalvik.system.NativeStart.run(Native Method)
05-12 13:53:55.408: W/dalvikvm(6814): threadid=7: thread exiting with uncaught exception (group=0x2aac8620)
05-12 13:53:55.408: E/AndroidRuntime(6814): FATAL EXCEPTION: Binder Thread #1
05-12 13:53:55.408: E/AndroidRuntime(6814): java.lang.NoSuchMethodError: getExternalStorages
05-12 13:53:55.408: E/AndroidRuntime(6814): at com.android.providers.downloads.Helpers.isFilenameValid(Helpers.java:652)
05-12 13:53:55.408: E/AndroidRuntime(6814): at com.android.providers.downloads.DownloadProvider.checkFileUriDestination(DownloadProvider.java:613)
05-12 13:53:55.408: E/AndroidRuntime(6814): at com.android.providers.downloads.DownloadProvider.insert(DownloadProvider.java:500)
05-12 13:53:55.408: E/AndroidRuntime(6814): at android.content.ContentProvider$Transport.insert(ContentProvider.java:198)
05-12 13:53:55.408: E/AndroidRuntime(6814): at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:146)
05-12 13:53:55.408: E/AndroidRuntime(6814): at android.os.Binder.execTransact(Binder.java:324)
05-12 13:53:55.408: E/AndroidRuntime(6814): at dalvik.system.NativeStart.run(Native Method)
But if I don't specify destination in any way, file is successfully downloaded.
I can't understand what's the problem at all. Could you help me please?
Try your code on the emulator (or some other unmodded environment). You might also consider try using known working code.