OK, tôi đang tải xuống tệp (hình ảnh). Tôi muốn gửi một tin nhắn với URI địa phương cho hình ảnh khi tải xuống hoàn tất. Nhưng 20% thời gian tôi nhận được điều này:Tải xuốngManager gửi STATUS_SUCCESSFUL để tải xuống không thành công
6-01 18:46:39.900: INFO/DownloadManager(412): Initiating request for download 605
06-01 18:46:39.910: WARN/DownloadManager(412): Aborting request for download 605: Trying to resume a download that can't be resumed
06-01 18:46:39.910: INFO/ololo(2826): Okay, I'll broadcast.
06-01 18:46:39.990: WARN/ImageView(2826): Unable to open content: content://downloads/my_downloads/605
java.io.FileNotFoundException: No filename found.
at android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel(DatabaseUtils.java:145)...
06-01 18:46:39.990: INFO/System.out(2826): resolveUri failed on bad bitmap uri: content://downloads/my_downloads/605
06-01 18:46:39.990: INFO/ololo(2826): content://downloads/my_downloads/605 was set for [email protected]
Đây là mã
Long downloadId = downloadIds.get(this);
if(downloadId == intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1)) {
DownloadManager.Query query = new DownloadManager.Query();
query.setFilterById(downloadId);
Cursor cursor = downloadManager.query(query);
if(cursor.moveToFirst()) {
switch (cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS))) {
case DownloadManager.STATUS_SUCCESSFUL : {
Log.i("ololo", "Okay, I'll broadcast.");
// Broadcasting
break;
}
case DownloadManager.STATUS_FAILED : {
Log.i("ololo", "Bad, I won't broadcast.");
int reason = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_REASON));
if(reason == DownloadManager.ERROR_CANNOT_RESUME || reason == DownloadManager.ERROR_UNKNOWN) {
// Rerun download
}
break;
}
default:
break;
}
}
}
Xin chào, tôi đang gặp sự cố tương tự. bạn đã giải quyết nó bằng cách nào đó hoặc hiểu điều gì sai? –
@TalKanel Vấn đề đang xảy ra chỉ với các thiết bị Samsung (Galaxy Tab 10.1 hoặc cái gì khác, trên 3.2, hoặc 2.3.3, hoặc 4.0 - điều này không quan trọng, không bao giờ xảy ra với bất kỳ HTC). Tôi nghĩ rằng có _buggy_ thực hiện của riêng họ của 'DownloadManager'. Vì vậy, đội trưởng của tôi đã viết nhận thức của riêng mình và nó hoạt động tốt. – efpies
quá tệ, tôi cần sử dụng nó trong máy tính bảng samsung P7510 và P5110 (GALAXY TAB 10.1 ONE và TWO), và tôi cần nó để làm việc trên các phiên bản hệ điều hành cụ thể mà bạn đã đề cập .. vì vậy tôi đoán tôi phải thực hiện giải pháp riêng của mình. –