Android DownloadManager保存到下载文件夹

时间:2014-02-20 22:30:55

标签: 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);

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

是否无法将文件下载到用户的下载文件夹?

另外,如果他们没有外部记忆,只是内部记忆怎么办?

感谢。

1 个答案:

答案 0 :(得分:9)

Uri downloadLocation=Uri.fromFile(new File(Environment.DIRECTORY_DOWNLOADS, filename));

这不是您使用Environment.DIRECTORY_DOWNLOADS的方式。该常量用于getExternalStoragePublicDirectory()

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

dir.mkdirs();

Uri downloadLocation=Uri.fromFile(new File(dir, filename);;

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

  

另外,如果他们没有外部记忆,只是内部记忆怎么办?

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