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