7

サーバーから大きな (zip) ファイルをダウンロードしたいと考えています。約440MBです。Androidのダウンロードサービスを利用しています。

これが私のコードです:

DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
Request request = new Request(Uri.parse(SERVER_PATH));
request.setTitle(getString(R.string.title_download));
request.setDescription(getString(R.string.desc_download));
File mapDir = new File(Environment.getExternalStorageDirectory() + DEVICE_PATH_PART);
File mapPartFile = new File(Environment.getExternalStorageDirectory() + DEVICE_PATH_PART + MAP_PACKFILE + EXT_INPROGRESS);
request.setDestinationUri(Uri.fromFile(mapPartFile));
enqueue = dm.enqueue(request);

無事にダウンロード開始。ダウンロード マネージャーで自分のファイルを確認できます。しかし、ネットワークの問題 (接続切断) が発生すると、ダウンロードはエラー 1008 で終了し、部分的なファイルがディレクトリから削除されます。そして、これが私の問題と質問です: ダウンロードプロセスを再開するために、ダウンロードサービスが宛先ディレクトリから部分的にファイルを削除しないようにするにはどうすればよいですか?

副次的な質問または問題は、アプリから 440 メガのファイルをダウンロードすると、ダウンロード プロセスが何度も中断されることです (エラーを再開できず、その後ダウンロードを再開する可能性はありません)。しかし、ダウンロードマネージャーアプリケーションを介してAndroidで直接同じファイルをダウンロードすると、すべて問題ありません。理由はわかりません。受信機で発生する唯一のエラーは、再開できないことに関する 1008 です。同じ問題を抱えている人はいますか?

ありがとうございました。

4

1 に答える 1