Android 4.4 Kitkat and second external storage

There has been written a lot about Kitkat external sdcard write permission but it's not clear to me how it works. Unfortunately I don't have Kitkat device with sdcard slot. Question is, can I write to secondary external storage at all? Based on the docs.

Apps must not be allowed to write to secondary external storage devices, except in their package-specific directories

If in understand it, If I don't have permission I can write to the app specific folder on primary external storage /sdcard/Android/data/package/... and to the app specific folder on secondary external storage /extSdcard/Android/data/package/...

and with WRITE_EXTERNAL_STORAGE I can write to all locations on primary external storage /sdcard/* but I can't write to any location on secondary external storage (except app specific folder)?

Thanks for all answers!


Your analysis is correct, other than assuming that primary external storage is /sdcard (the exact path varies by device, OS level, and user account for Android 4.2+ tablets).

Here are some blog posts that I wrote recently on external storage and removable ("secondary external") storage.

I know this topic is old but this may help. You should use this method.


see project Environment3 to access all storage that is connected to your device.

Need Your Help

iPhone App backgrounding with MPMusicPlayer

iphone ios4 mpmusicplayercontroller backgrounding

I'm working on an iPhone iOS4 application that incorporates playing music from the user's iPod library. I also want to keep track of what songs have been played and be able to change the song rand...

Either, Try, and Validation in Scala

scala error-handling monads scalaz

I am confused with Either, Try, and Validation of scalaz. None of them seems to do what I need. What I need is a simple monad Result[E, R] where E is an error type and R is an result type.