Android DownloadManager保存到下载文件夹

Nei*_*ker 2 android android-file android-download-manager

我正在使用DownloadManager下载文件,我想将下载放在标准下载文件夹中,以便人们可以使用文件管理器在最明显的位置轻松找到它们:

Uri downloadLocation = Uri.fromFile(new File(Environment.DIRECTORY_DOWNLOADS, filename));
request.setDestinationUri(downloadLocation);
Long reference = downloadManager.enqueue(request);
Run Code Online (Sandbox Code Playgroud)

但我得到一个例外,因为那不是外部驱动器.

有没有办法将文件下载到用户的下载文件夹?

而且,如果他们没有外部记忆,只是内部?

谢谢.

Com*_*are 9

Uri downloadLocation=Uri.fromFile(new File(Environment.DIRECTORY_DOWNLOADS, filename));
Run Code Online (Sandbox Code Playgroud)

这不是你如何使用Environment.DIRECTORY_DOWNLOADS.该常量用于getExternalStoragePublicDirectory():

File dir=Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);

dir.mkdirs();

Uri downloadLocation=Uri.fromFile(new File(dir, filename);;
Run Code Online (Sandbox Code Playgroud)

请注意,该目录可能尚不存在,因此您应该打电话给mkdirs()自己.

而且,如果他们没有外部记忆,只是内部?

几乎所有Android设备都有外部存储器.外部!=可移动.Android SDK所称的"外部存储"是用户可以通过USB线缆访问的内容,通常与板载闪存中的"内部存储"位于同一分区上.