在Manager 17上,DownloadManager因ERROR_UNKNOWN而失败

时间:2016-06-22 19:31:10

标签: android android-download-manager

我尝试使用Android自己的DownloadManager,它在API 18+上完美运行,但是相同的代码失败(STATUS_FAILED),因为ERROR_UNKNOWN几乎在我将它排入API 17手机时就失败了。这是我的代码

Context context = MyApplication.getSharedContext();
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE).setTitle(notiTitle).
setVisibleInDownloadsUi(false);
File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+File.separator+fileName);
request.setDestinationUri(Uri.fromFile(file));
DownloadManager manager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
manager.enqueue(request) ;

1 个答案:

答案 0 :(得分:2)

经过几天的努力解决这个问题后,我意外地发现了问题的根源。从服务器获取的下载网址有" ["和"]"字符。它们在API 18+ DownloadManager中没有问题,但在API 17中,下载失败,ERROR_UNKNOWN没有任何关于为什么的信息。 用%5B和%5D替换它们分别解决了这个问题。

url = url.replace("[","%5B").replace("]","%5D");