Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么下载路径与使用DownloadManager的Android M上的初始路径不同?_Android_Android Download Manager_Download Manager_Android 6.0 Marshmallow - Fatal编程技术网

为什么下载路径与使用DownloadManager的Android M上的初始路径不同?

为什么下载路径与使用DownloadManager的Android M上的初始路径不同?,android,android-download-manager,download-manager,android-6.0-marshmallow,Android,Android Download Manager,Download Manager,Android 6.0 Marshmallow,下面的代码适用于Android

下面的代码适用于Android<6.0

下载:

DownloadManager.Request request = new DownloadManager.Request(downloadUri);
// Remove all whitespace and more char.
String fileName = pPackageBean.getSaveAsName().replaceAll("\\s+", "_").replaceAll("[^a-zA-Z0-9\\_\\-]", "");
request.setDescription(mContext.getString(R.string.application_name));
request.setTitle(pPackageBean.getSaveAsName());
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName);
id = mDownloadManager.enqueue(request);
pPackageBean.setDownloadId(id);
处理成功:

case DownloadManager.STATUS_SUCCESSFUL:
long id = packageBean.getDownloadId();
Uri uri =  mDownloadManager.getUriForDownloadedFile(id);
packageBean.path = uri.getEncodedPath();
因此,uri为:
content://downloads/my_downloads/867
这不是预期的。
867
是下载的id,不知道
my\u下载的内容来自哪里


在4.2.2中,我得到:
file:///storage/emulated/0/Download/Yvan_Test

您的初始路径是什么<代码>字符串文件名=pPackageBean.getSaveAsName().replaceAll(“\\s+”,“”).replaceAll([^a-zA-Z0-9\\\\\\-]”,简称“)。“文件名”的价值是什么?我不知道我的下载从哪里来。然后,您应该阅读一些关于内容提供商的内容<代码>文件名
不是一个路径,而是一个名称。我使用以下方法解决此问题: