Intereting Posts
Использование андроидных векторных чертежей Как начать вторую активность в Android? Получение ошибки Как использовать runOnUiThread Вертикальный DrawerLayout или SlidingPaneLayout Как создать пакет андроидной версии релиза (aar) в Android Studio (не отлаживать) React Native & Android? Исходное значение 1.5 устарело и будет удалено в будущей версии Как сделать приложение Facebook новым приложением на Android? Styling EditText view с формой, способной выглядеть похожей на новую голографическую тему для Android <3.0 Можем ли мы установить INSTALL_REFERRER два раза в одном приложении для Android? Уведомление от Google не исчезает после нажатия на значок Выбранный элемент в пользовательском listview с контекстной панелью действий Firebase 2.0 – как бороться с несколькими вкусами (средами) приложения Android? Как создать простой Android-виджет Что представляет собой изображение системы intel x86 atom в Android-менеджере sdk?

Как проверить внутреннее и внешнее хранилище, если они существуют

Как узнать, есть ли внутреннее и внешнее хранилище в андроиде прагматично? Кто-нибудь знает, как проверить как внутреннее, так и внешнее хранилище

заранее спасибо

Solutions Collecting From Web of "Как проверить внутреннее и внешнее хранилище, если они существуют"

Это уже объясняется в документации по Android .

Код, взятый из документации

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; } 

Я написал небольшой класс для проверки состояния хранилища. Возможно, это для вас полезно.

UPDATE: очищенный код, удаленные комментарии и статический класс.

 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; } } } 

Я заработал, если кто-то ищет это … это поможет: D

 try { File dir = new File("/mnt/"); File[] dirs = dir.listFiles(); for (File _tempDIR : dirs) { String sdCard = _tempDIR.getAbsolutePath().toString(); File file = new File(sdCard + "/" + Environment.DIRECTORY_DOWNLOADS); File[] files = file.listFiles(); if (files != null) { for (int i = 0; i < files.length; i++) { String _temp = files[i].getAbsoluteFile().getName() .toString();/*Your code, and what you want to find, from all the Sdcard, internal and external. Everything mounted will be found :D*/ 
 File f = new File("/mnt/sdcard/ext_sd"); if (f.exists()) { // Do Whatever you want sdcard exists } else{ Toast.makeText(MainActivity.this, "Sdcard not Exists", Toast.LENGTH_SHORT).show(); }