首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >DownloadManager无法通过Pie下载到三星的外部存储

DownloadManager无法通过Pie下载到三星的外部存储
EN

Stack Overflow用户
提问于 2019-04-09 19:57:46
回答 2查看 2.6K关注 0票数 13

在三星Galaxy S9,S9+ on Android 9 (Pie)上,使用安卓DownloadManager将文件下载到外部存储器失败。

下载适用于搭载Android 8的三星设备或其他搭载Android 9的设备(例如Pixel 2)

我已向清单中添加了以下权限:

 "android.permission.WRITE_EXTERNAL_STORAGE", 
 "android.permission.READ_EXTERNAL_STORAGE",
 "android.permission.INTERNET"

我还在运行时请求了读/写_外部_存储权限。

文件路径是:/storage/4295-DDD5/Android/data/com.example.myapplication/files/filename.file,并且此文件路径存在,我使用AndroidStudio的设备文件资源管理器创建了它

创建下载的方法:

public void downloadFile(String url, String filePath) {
   DownloadManager mDownloadManager = 
   (DownloadManager)context.getSystemService(Context.DOWNLOAD_SERVICE);

   DownloadManager.Request request = new 
   DownloadManager.Request(Uri.parse(url));

   request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_MOBILE | 
   DownloadManager.Request.NETWORK_WIFI);

   request.setVisibleInDownloadsUi(true);

   request.setDestinationUri(Uri.parse("file://" + filePath));

   mDownloadManager.enqueue(request);
}

预期的结果是将指定的文件从url下载到filePath,而我在日志中得到以下错误:

D/DownloadManager: [8616] Starting com.example.myapplication
W/DownloadManager: [8616] Stop requested with status FILE_ERROR: Failed to generate filename: java.io.IOException: Permission denied
D/DownloadManager: [8616] Finished with status WAITING_TO_RETRY
V/DownloadManager: MIME Type = application/octet-stream
I/DownloadManager: Download 8616 finished with status WAITING_TO_RETRY
I/DownloadManager: Notification Clear Download 1:com.example.myapplication
EN

回答 2

Stack Overflow用户

发布于 2019-05-22 19:28:23

我设法通过使用setDestinationInExternalFilesDir (使用null作为第二个参数)让它工作。

这应该将文件存储在与请求完全相同的位置,但是实际的实现似乎可以在三星设备上工作。此外,我不请求任何权限(*_EXTERNAL_STORAGE)。

票数 0
EN

Stack Overflow用户

发布于 2020-05-07 02:33:14

在android清单中添加下面这一行:

<application
    ...
    android:usesCleartextTraffic="true"/>

(在official doc中有更多信息)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55592325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档