さて、私はファイル(画像)をダウンロードしています。ダウンロードが完了したら、イメージ用のローカルURIを持つメッセージを送信します。しかし、時間の20%が、私はこれを取得しています:DownloadManagerは、失敗したダウンロードに対してSTATUS_SUCCESSFULを送信します。
ここ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]
は
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;
}
}
}
こんにちは、私は同じ問題を抱えています。何とか解決したのか、何が間違っているのか理解していますか? –
@ TalKanel問題は、Samsungのデバイス(Galaxy Tab 10.1または3.2、または2.3.3、または4.0の何か他のHTCには起こりませんでした)でのみ起こります。私は、 'DownloadManager'の独自の_buggy_実現があると思います。だから私のチームリーダーは自分の実現を書いて、それはうまくいく。 – efpies
あまりにも悪いですが、私はsamsungのタブレットP7510とP5110(GALAXY TAB 10.1 ONEとTWO)で使う必要があり、あなたが言及した特定のOSバージョンで動作する必要があるので、私は自分の回避策を実装しなければならないと思います。 –