Android 使用DownloadManager获取下载状态

Android 使用DownloadManager获取下载状态,android,Android,我找了很多,但找不到满意的答案。 我只是创建了一个方法,调用该方法时,在Log.I()中打印所有可用下载状态;方法如下: DownloadManager downloadManager = (DownloadManager)getSystemService(Context.DOWNLOAD_SERVICE); DownloadManager.Query query = new DownloadManager.Query(); Cursor c = downloadMa

我找了很多,但找不到满意的答案。 我只是创建了一个方法,调用该方法时,在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);
对于使用其他应用(例如,使用浏览器)下载的其他文件,日志中未写入任何行。
我错过什么了吗?谢谢你的帮助

您无法获取其他应用程序完成的下载的下载状态。
这是受保护的。

嗨,我没有投反对票;有没有办法知道最后一次下载何时完成?因为我正在开发一个应用程序,当所有下载完成后,它会关闭连接。谢谢不使用DownloadManager,在根设备上是可能的。使用公共URI:content://downloads/all_downloads/2334 您可以获取该文件(每个人都可以访问)。但是你不知道进展如何。非常感谢你的帮助!要不要解释一下投票结果?如果Android改变了api,我会改变答案。但在发布时,这是/不可能的。