当目标文件路径包含空格时,下载管理器会表现异常

时间:2014-03-13 12:11:59

标签: android pdf

我的应用使用DownloadManager下载pdf文件并将其保存到外部存储中的文件夹中。

 File folder = new File(Environment.getExternalStorageDirectory(), "Class 10");
    File chapterFile = new File(folder, "jess301.pdf");
    request = new DownloadManager.Request(Uri.parse("http://www.ncert.nic.in/NCERTS/l/jess301.pdf"))
                    .setTitle("Book Name")
                    .setDescription("Chapter Name")
                    .setDestinationUri(Uri.fromFile(chapterFile))
                    .setVisibleInDownloadsUi(false);
            downloadID = downloadManager.enqueue(request);

在许多设备上(例如nexus 4),下载管理器会按预期将下载的文件保存到Class 10/jess301.pdf

但是在某些设备上(例如Micromax A110:版本4.0.4),下载的文件会保存到不同的版本 - Class%2010/jess301.pdf。在这些设备上,文件路径中的空格字符将替换为%20

当我在使用API​​ 15的模拟器中运行代码时,它可以正常工作。

报告此问题的所有设备都运行从3.2到4.1的Android版本。但代码在相应的模拟器上正常工作。

如何在所有设备上正常运行?

我目前的解决方法是将文件从错误的位置移动到正确的位置。

This link讨论了与StreamResult相关的相同问题。

0 个答案:

没有答案