Android DownloadManager:将文件下载到缓存分区

Android DownloadManager:将文件下载到缓存分区,android,download-manager,Android,Download Manager,我使用的是类DownloadManager的公共api,我可以将文件下载到SD卡,即所谓的外部存储。然而,当我试图将一个文件下载到其他地方时,比如/cache分区,它抛出了一个安全异常,它说“目的地必须在外部存储上” 有人知道如何绕过这个限制,将下载的文件写入/cache分区吗 非常感谢。事实上,我找到了一种将文件下载到/cache分区的方法。 在DownloadManager类中,有一个api setDestinationUri(),使用参数“null”调用此函数,android会将文件下载到

我使用的是类DownloadManager的公共api,我可以将文件下载到SD卡,即所谓的外部存储。然而,当我试图将一个文件下载到其他地方时,比如/cache分区,它抛出了一个安全异常,它说“目的地必须在外部存储上”

有人知道如何绕过这个限制,将下载的文件写入/cache分区吗


非常感谢。

事实上,我找到了一种将文件下载到/cache分区的方法。 在DownloadManager类中,有一个api
setDestinationUri(),使用参数“null”调用此函数,android会将文件下载到/cache分区。此外,如果参数不为null,uri必须以“/mnt/sdcard/…”开头,否则将引发异常。

如果您正在开发系统应用程序,DownloadManager上有一个隐藏的函数。请求名为setDestinationSystemCache()

它需要以下权限:

android.permission.ACCESS_DOWNLOAD_MANAGER
android.permission.ACCESS_DOWNLOAD_MANAGER_ADVANCED"
android.permission.ACCESS_CACHE_FILESYSTEM

不要使用/mnt/sdcard-call-Environment.getExternalStorageDirectory()/mnt/sdcard不能保证。他没有说他正在使用“/mnt/sdcard”。
android.permission.ACCESS\u CACHE\u FILESYSTEM
仅授予系统应用程序。