【问题标题】:DownloadManager: download a file to cache partitionDownloadManager:下载文件到缓存分区
【发布时间】:2011-06-12 17:09:02
【问题描述】:

我正在使用类 DownloadManager 的公共 api,我可以将文件下载到 sdcard,即所谓的外部存储。但是,当我尝试将文件下载到其他地方(例如 /cache 分区)时,它会引发安全异常,提示“目标必须在外部存储上”。

有谁知道如何绕过这个限制并将下载的文件写入 /cache 分区?

非常感谢。

【问题讨论】:

    标签: android download-manager


    【解决方案1】:

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

    【讨论】:

    • 不要使用 /mnt/sdcard - 改为调用 Environment.getExternalStorageDirectory()。 /mnt/sdcard 无法保证。
    • 他没有说他正在使用“/mnt/sdcard”。
    【解决方案2】:

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

    它需要这些权限:

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

    【讨论】:

    • android.permission.ACCESS_CACHE_FILESYSTEM 仅授予系统应用程序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    • 1970-01-01
    • 1970-01-01
    • 2012-07-05
    相关资源
    最近更新 更多