3

Android の DownloadManager クラスを使用して、サーバーからデータをダウンロードしています。データは外部メモリに保存されます。しかし、それらを内部メモリに保存したい。私は調査を行い、見つけたのはこのリンクからです。私はcyngusの2番目の解決策を試しました:

public static final String PROVIDER_NAME = "com.provider.Downloads";
public static final Uri CONTENT_URI = Uri.parse("content://"+ PROVIDER_NAME + "/downloads")

DownloadManager.Request req = new DownloadManager.Request(Uri.parse(LINK));
req.setDestinationUri(CONTENT_URI);

それはうまくいきませんでした、それは私にエラーを与えました: java.lang.IllegalArgumentException: Not a file URI: content://com.provider.Downloads/downloads. 私が間違っていることは何ですか?

4

1 に答える 1

6

ドキュメントにDownloadManager.RequestsetDestination*は、メソッドのいずれかに設定する宛先が外部ストレージにある必要があり、アプリにWRITE_EXTERNAL_STORAGE権限が必要であることが明確に記載されています。

ダウンロードしたファイルのローカル宛先を設定します。外部ストレージのパスへのファイル URI である必要があり、呼び出し元のアプリケーションには WRITE_EXTERNAL_STORAGE 権限が必要です。

ここで内部ストレージへのパスを提供する方法がわかりません。

于 2012-07-12T09:06:08.500 に答える