getExternalStorageDirectory not working
I am trying to save a file to my SDcard on my Samsung Galaxy Nexus running 4.2.2. From my app I am using
Environment.getExternalStorageDirectory()
But it returns
/storage/emulated/0/
Which is not where my SDcard information is located to. Is there any working method I can use to get the correct path to my SDcard?
Actually, that is the correct location.
From android 4,2 onwards, Google introduced multiple user accounts. Every user has his/her own external storage, which has the user ID in the path to maintain uniqueness.
The primary (default) user's ID is 0. So you get /storage/emulated/0/
as the path to the external storage.
I just learned this is the Jelly Bean's way of dealing with the lack of android.permission.WRITE_EXTERNAL_STORAGE
permission. I haven't seen such a behavior with older versions of Android.
Just add this line to your AndroidManifest.xml:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Environment.getExternalStorageDirectory()
refers to whatever the device manufacturer considered to be "external storage". I can be something else than the SD-card.
You may get more informations here: Find an external SD card location