DownloadManager:下载文件到缓存分区
我正在使用 DownloadManager 类的公共 api,我能够将文件下载到 SD 卡(所谓的外部存储)。但是,当我尝试将文件下载到其他位置(例如 /cache 分区)时,它会抛出一个安全异常,提示“目标必须位于外部存储上”。
有谁知道如何绕过此限制并将下载的文件写入 /cache 分区?
多谢。
I am using the public api of class DownloadManager, I am able to download files to sdcard, so-called external storage. However, when I tried to download a file to other places, like /cache partition, it throw a security exception which says "Destination must be on external storage".
Does anyone know how to bypass this limitation and write downloaded file to /cache partition ?
Thanks a lot.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您正在开发系统应用程序,DownloadManager.Request 上有一个名为 setDestinationToSystemCache() 的隐藏函数,
它需要以下权限:
If you're developing a system app, there is a hidden function on DownloadManager.Request named setDestinationToSystemCache()
It requires these permissions:
实际上我找到了一种将文件下载到/cache分区的方法。
在DownloadManager类中,有一个api
setDestinationUri(),使用参数“null”调用此函数,android会将文件下载到/cache分区。此外,如果参数不为空,则uri必须以“/mnt/sdcard/...”开头,否则会抛出异常。
Actually I found a way to download files to /cache partition.
In the DownloadManager class, there is an api
setDestinationUri(), call this function with parameter "null", the android would download files to /cache partition. Moreover, if the parameter is not null, the uri must start with "/mnt/sdcard/..." otherwise an exception would be thrown.