我正在尝试使用DownloadManager下载以下文件:
http://loopstream01.apa.at/?channel=fm4&ua=flash&id=2013-10-05_1902_tl_54_4DDSat1__9778.mp3
代码如下:
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(asset.url));
request.setDescription("");
request.setTitle(asset.name);
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "test");
DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
manager.enqueue(request);
下载管理器始终无法下载文件,并显示以下错误消息:
中止下载请求123:http错误206
由于206表示部分内容,因此这始终需要我添加的http请求中的范围
request.addRequestHeader("Range", "bytes=0-1000");
下载前1000个字节,但错误消息保持不变,且未下载任何内容。:(
编辑当我在Android 4.2设备上运行相同的代码时,出现以下消息:
10-09 21:22:41.461:I / DownloadManager(2379):下载231开始10-09 21:22:41.692:W / DownloadManager(2379):中止下载请求231:预期可以,但收到部分10-09 21:22:41.712:I / DownloadManager(2379):下载231完成,状态为CANNOT_RESUME
如果android下载管理器认为自己正在恢复较早的下载,则好像处理了206恢复响应,否则将认为响应无效。通过addRequestHeader插入的显式范围请求将不起作用。
以下是4.3.1的下载线程代码:https : //android.googlesource.com/platform/packages/providers/DownloadProvider.git/+/android-4.3.1_r1/src/com/android/providers/downloads/DownloadThread。爪哇
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句