Android 用の Internet Download Manager のようなアプリケーションを開発しています。
IDMで行われるように、Androidでファイルのさまざまな部分をダウンロードする方法を知りたいです。
ダウンロード前にファイルのメタデータを取得する方法と、ファイルを分割してダウンロードする方法を教えてください。
ユーザー名パスワードやダウンロードの制限はありません... URL による単純なダウンロードだけです。
Android 用の Internet Download Manager のようなアプリケーションを開発しています。
IDMで行われるように、Androidでファイルのさまざまな部分をダウンロードする方法を知りたいです。
ダウンロード前にファイルのメタデータを取得する方法と、ファイルを分割してダウンロードする方法を教えてください。
ユーザー名パスワードやダウンロードの制限はありません... URL による単純なダウンロードだけです。
ダウンロードに HTTP を使用していると仮定すると、HEADhttp 動詞とRANGEhttp ヘッダーを使用する必要があります。
HEADファイルサイズ(利用可能な場合)が表示RANGEされ、バイト範囲をダウンロードできます。
ファイルサイズを取得したら、それをほぼ同じサイズのチャンクに分割し、チャンクごとにダウンロード スレッドを生成します。すべてが完了したら、ファイル チャンクを正しい順序で書き込みます。
編集:
RANGEヘッダーの使用方法がわからない場合は、その方法を説明する別の SO 回答があります: https://stackoverflow.com/a/6323043/1355166