我进行了很多搜索,但找不到满意的答案。
我只是创建了一个方法,当调用时,在 Log.i() 中打印所有可用的下载状态;方法如下:
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);
对于使用其他应用程序(例如使用浏览器)下载的其他文件,日志中不会写入任何行。
我错过了什么吗?谢谢您的帮助!
您无法获取其他应用程序完成的下载的下载状态。
这是受保护的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)