how to check internal and external storage if exist
it's already explained in android documentation.
Code taken from documentation
boolean mExternalStorageAvailable = false;boolean mExternalStorageWriteable = false;String state = Environment.getExternalStorageState();if (Environment.MEDIA_MOUNTED.equals(state)) { // We can read and write the media mExternalStorageAvailable = mExternalStorageWriteable = true;} else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) { // We can only read the media mExternalStorageAvailable = true; mExternalStorageWriteable = false;} else { // Something else is wrong. It may be one of many other states, but all we need // to know is we can neither read nor write mExternalStorageAvailable = mExternalStorageWriteable = false;}
I wrote a little class for that checking the storage state. Maybe it's of some use for you.
UPDATE: Cleaned up code, removed comments and made class static.
import android.os.Environment;public class StorageHelper { private static boolean externalStorageReadable, externalStorageWritable; public static boolean isExternalStorageReadable() { checkStorage(); return externalStorageReadable; } public static boolean isExternalStorageWritable() { checkStorage(); return externalStorageWritable; } public static boolean isExternalStorageReadableAndWritable() { checkStorage(); return externalStorageReadable && externalStorageWritable; } private static void checkStorage() { String state = Environment.getExternalStorageState(); if (state.equals(Environment.MEDIA_MOUNTED)) { externalStorageReadable = externalStorageWritable = true; } else if (state.equals(Environment.MEDIA_MOUNTED) || state.equals(Environment.MEDIA_MOUNTED_READ_ONLY)) { externalStorageReadable = true; externalStorageWritable = false; } else { externalStorageReadable = externalStorageWritable = false; } }}
Code from the documentation that's been simplified a bit since previous answers:
/* Checks if external storage is available for read and write */public boolean isExternalStorageWritable() { String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) { return true; } return false;}/* Checks if external storage is available to at least read */public boolean isExternalStorageReadable() { String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state) || Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) { return true; } return false;}