Question: 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.

Answer: 
If you're developing a system app, there is a hidden function on DownloadManager.Request named setDestinationToSystemCache()

It requires these permissions:

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

```
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.