2011-06-27 20 views
15

downloadmanager.request enqueue setDestinationUri〜 ファイルをダウンロードしています。内部メモリにダウンロードできますか?

ファイルを永続化できるデバイスの内部メモリロケーション にダウンロードすることはできますか。

私は、Android 3.1 Xoomのデバイスを使用していますが、アプリは、私たちがを/ mnt/SDカード 場所に書き込むことができますけれども、それは実際にそれに 機能SDカードを持っていません。

ダウンロードしたファイルを内部メモリに保存する方法はありますか?

TIA

+0

ハニカムデバイスの/ sdcardは、とにかく内部メモリに書き込まれませんか?これはあなたが望むものではありませんか? – maxpower47

+2

私は/ mnt/sdcardが内部メモリとみなすとは思わない。その場所の絶対パスはEnvironment.getExternalStorageDirectory()。getAbsolutePath()によって与えられ、それは外部のものであることがはっきりしています –

+0

xoom(および他のHCデバイス)マップ/ sdcardが内部16のポイントまたはSDDカードが存在すると予想されるアプリの回避策として32GBのメモリが必要です。アプリケーションには、sdcard上のように見えますが、内部では実際に内部フラッシュに書き込まれます。 – maxpower47

答えて

20

DownloadManagerでこれを行うことはできません。私の前提は、DownloadManagerはあなたのプロセスではなく、システムによって制御される別のプロセスで実行されるということです。内部ストレージの場所はアクセス許可で保護されており、提供する場所はアプリケーションにのみアクセスできます。

2つの選択肢があるようです。

(1)完了すると、「外部」ストレージにファイルパスを提供し、内部ストレージにコピーして、外部ストレージ上のファイルを削除します。

(2)DownloadManagerが書き込むContentProviderを作成し、このContentProviderに対応するURIを与えます。実装するContentProviderは、アプリケーションのコンテキストで実行されるため、内部ストレージにファイルを書き込むことができます。

+0

@cygnus - これは有望ですね。試してみましょう(2)、スレッドを更新します。ありがとう。 –

+2

「ContentProvider」を提案するための+1 –

+2

@cyngus:オプション2の例を挙げることはできますか? – RvdK

関連する問題