我正在使用类 DownloadManager 的公共 api,我能够将文件下载到 sdcard,即所谓的外部存储。但是,当我尝试将文件下载到其他地方时,例如 /cache 分区,它会抛出一个安全异常,上面写着“目标必须在外部存储上”。
有谁知道如何绕过这个限制并将下载的文件写入 /cache 分区?
非常感谢。
我正在使用类 DownloadManager 的公共 api,我能够将文件下载到 sdcard,即所谓的外部存储。但是,当我尝试将文件下载到其他地方时,例如 /cache 分区,它会抛出一个安全异常,上面写着“目标必须在外部存储上”。
有谁知道如何绕过这个限制并将下载的文件写入 /cache 分区?
非常感谢。
如果您正在开发系统应用程序,DownloadManager.Request 上有一个名为 setDestinationToSystemCache() 的隐藏函数
它需要以下权限:
android.permission.ACCESS_DOWNLOAD_MANAGER
android.permission.ACCESS_DOWNLOAD_MANAGER_ADVANCED"
android.permission.ACCESS_CACHE_FILESYSTEM
实际上我找到了一种将文件下载到 /cache 分区的方法。在DownloadManager类中,有一个api setDestinationUri(),调用这个函数,参数为“null”,android会下载文件到/cache分区。此外,如果参数不为 null,则 uri 必须以“/mnt/sdcard/...”开头,否则会引发异常。