How to access External Micro SD card of the phone?

Viewed 23343

Does anyone know how can I get SD card of the phone?

I know that someone will tell me its getExternalStorageDirectory() or Environment.getExternalStoragePublicDirectory().

But unfortunately it doesn't always point to the external SD card in all the models. For example I tried in one model of samsung it works fine but another not, LG not. And also according to the documentation also its not always external SD card.

Here it is,

*"don't be confused by the word "external" here.

This directory can better be thought as media/shared storage. It is a filesystem that can hold a relatively large amount of data and that is shared across all applications (does not enforce permissions).

Traditionally this is an SD card, but it may also be implemented as built-in storage in a device that is distinct from the protected internal storage and can be mounted as a filesystem on a computer."*

In my application I want user to use SD card only.

How can I overcome with this?

6 Answers

I was facing the same problem with my latest device. Then I found that removable SD card can be accessed at /mnt/ext_sdcard/. and it worked for me. I was able to list all the files stored in removable external sd card at this location.

Following is the code: new File("/mnt/ext_sdcard/").listFiles();

Related