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