以下のコードを使用してファイルをダウンロードしようとするたびに
dm = (DownloadManager) context.getSystemService(context.DOWNLOAD_SERVICE);
request = new Request(
Uri.parse(finalurl));
enqueue = dm.enqueue(request);
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(action)) {
long downloadId = intent.getLongExtra(
DownloadManager.EXTRA_DOWNLOAD_ID, 0);
Query query = new Query();
query.setFilterById(enqueue);
Cursor c = dm.query(query);
if (c.moveToFirst()) {
int columnIndex = c
.getColumnIndex(DownloadManager.COLUMN_STATUS);
if (DownloadManager.STATUS_SUCCESSFUL == c
.getInt(columnIndex)) {
Toast.makeText(context, "download finished", Toast.LENGTH_LONG).show();
}
}
}
}
};
context.registerReceiver(receiver, new IntentFilter(
DownloadManager.ACTION_DOWNLOAD_COMPLETE));
ダウンロードしたファイルはダウンロードマネージャーアプリケーションに表示され、そこからいつでも再生できますが、ダウンロードしたファイルはダウンロードフォルダーに保存されません。
私が使用する場合
.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "filename.extention"));
同じ結果が得られます。
私の質問は-ダウンロードはどこに行き、どうすればダウンロードフォルダに持っていくことができますか?
ダウンロードしたファイルを表示するには、携帯電話にファイルマネージャーアプリがインストールされている必要があります。ダウンロードしたファイルを表示する手順:
パスは次のとおりです:storage/sdcard/Android/data/"your package"
ダウンロードフォルダにファイルを保存するには、以下の方法を使用してください
.setDestinationInExternalFilesDir(this, dir, "abc.png");
試してみてください
request.setDestinationInExternalPublicDir("/folder","file.ext");
これにより、ファイルがに保存されます
Environment.getExternalStorageDirectory() + "/folder"
DownloadManagerがファイルを保存した場所を検索しようとした場合
String file = <Cursor>.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI)
「context:// downloads/my_downloads/{number}」という架空のパスが表示されます。実際のパスを確認するには、次を使用します。
String file = <Cursor>.getColumnIndex(DownloadManager.COLUMN_LOCAL_FILENAME)
次に、「/ data/user/0/com.Android.providers.downloads/cache/{filename}」(または同様のもの)を取得し、そこからファイルにアクセスできます。
ダウンロードを見つけてローカルフォルダにエクスポートする手順。ダウンロードマネージャー->右上にメニューボタンがあります->ファイル->アイテムにマークを付けます->エクスポートします。
それが役に立ったことを願っています:)