每当我尝试通过以下代码下载任何文件时
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"));
我得到了相同的结果。
我的问题是 - 我的下载在哪里以及如何将它们带到下载文件夹?
答案 0 :(得分:9)
尝试
request.setDestinationInExternalPublicDir("/folder","file.ext");
这会将文件保存到
Environment.getExternalStorageDirectory() + "/folder"
答案 1 :(得分:3)
要查看下载的文件,您必须在手机中安装了文件管理器应用。查看下载文件的步骤:
路径是:storage / sdcard / Android / data /“your package”
使用以下方法保存下载文件夹中的文件
.setDestinationInExternalFilesDir(this, dir, "abc.png");
答案 2 :(得分:1)
如果您尝试使用
查找DownloadManager存储文件的位置String file = <Cursor>.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI)
你得到一条虚构的道路:&#34; context:// downloads / my_downloads / {number}&#34;。 要查看实际路径,请使用:
String file = <Cursor>.getColumnIndex(DownloadManager.COLUMN_LOCAL_FILENAME)
然后你得到:&#34; /data/user/0/com.android.providers.downloads/cache/ {filename}&#34; (或类似的东西),你可以从那里访问该文件。
答案 3 :(得分:0)
找到下载内容并将其导出到本地文件夹的步骤。 下载管理器->右上方有一个菜单按钮->文件->标记项目->导出。
希望对您有所帮助:)