【发布时间】:2021-04-27 20:30:35
【问题描述】:
我需要下载一个 pdf 文件,然后触发一个意图,以便其他合适的应用程序可以显示该文件。到目前为止,我使用DownloadManager 的setDestinationInExternalPublicDir 将我的下载目标设置为下载目录的子目录。然后我使用getExternalStoragePublicDirectory 创建文件并通过FileProvider 获取uri,最终使用ACTION_VIEW 触发了意图。
现在使用范围存储,getExternalStoragePublicDirectory 已弃用。我计划使用 SAF/MediaStore,但它们提供的内容 uri 无法用于在 DownloadManager 中设置下载目标。有没有办法解决这个问题?我正在考虑将可以通过DownloadManager.getUriForDownloadedFile 获取的内容uri 存储在共享首选项中,然后在不需要getExternalStoragePublicDirectory 的情况下使用它来触发意图。但是,如果在范围存储合规性限制内有使用 DownloadManager 的兼容方式,我想避免这种“黑客行为”。
【问题讨论】:
标签: mediastore android-download-manager storage-access-framework scoped-storage