2
我搜索了很多,但我找不到满意的答案。 我刚刚创建了一个方法,在调用Log.i()时打印所有可用的下载状态;这里的方法:使用DownloadManager获取下载状态
DownloadManager downloadManager = (DownloadManager)getSystemService(Context.DOWNLOAD_SERVICE);
DownloadManager.Query query = new DownloadManager.Query();
Cursor c = downloadManager.query(query);
while (c.moveToNext()) {
switch(c.getInt(c.getColumnIndex(DownloadManager.COLUMN_STATUS))) {
case DownloadManager.STATUS_FAILED:
Log.i("46dl","Download failed!");
break;
case DownloadManager.STATUS_PAUSED:
Log.i("46dl","Download paused!");
break;
case DownloadManager.STATUS_PENDING:
Log.i("46dl","Download pending!");
break;
case DownloadManager.STATUS_RUNNING:
Log.i("46dl","Download in progress!");
break;
case DownloadManager.STATUS_SUCCESSFUL:
Log.i("46dl","Download complete!");
break;
default:
Log.i("46dl","Download is nowhere in sight");
break;
}
}
但是,这只适用于,如果我从我的应用程序开始下载;例如。
Request request = new Request(Uri.parse("http://www.something.com/img/img4.jpg"));
downloadManager.enqueue(request);
对于使用其他应用程序下载的其他文件(例如使用浏览器),Log中没有行被写入。 我错过了什么?谢谢您的帮助!
downvote的原因是什么? – RvdK
嗨,我还没有downvote;上次下载完成后有什么方法可以获取? Becouse我正在开发一个应用程序,当所有的下载完成后,关闭连接。谢谢! – Slv3r
不与DownloadManager,在根源设备上是可能的。使用公共URI:content:// downloads/all_downloads/2334,您可以获取文件(每个人都可以访问)。但是你不知道进展情况。 – RvdK