I'm using `Download manager` to download file and save it to the external storage like this:

```
DownloadManager.Request req = new DownloadManager.Request(uri);
req.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE)
.setDestinationInExternalFilesDir(TextReaderActivity.this, null, "podcasts/" + Integer.toString(article.id) + PODCAST_EXTENSION);

```

I get the following exception:

```
Exception: need WRITE_EXTERNAL_STORAGE permission to use DESTINATION_FILE_URI: uid 10052 does not have android.permission.WRITE_EXTERNAL_STORAGE.

```

I've read that I don't need to request `WRITE_EXTERNAL_STORAGE` permission for `maxSdkVersion > 18` when writing to external directories, why doesn't it require it here with `DownloadManager`?

UPDATE:

> 
> On Android 4.4 and up, the rules are a bit different:   
> 
>  - To read or write in the directory trees rooted at getExternalFilesDir()
>  and getExternalCacheDir(), you do not need a permission   
> 
>  - To write to anywhere else on external storage, you need WRITE\_EXTERNAL\_STORAGE  
> 
>  - To read from anywhere else on external storage, you need either
>  WRITE\_EXTERNAL\_STORAGE (if you already have that) or
>  READ\_EXTERNAL\_STORAGE (if not)
> 
> 
>