Intereting Posts
Android – Подтвердите выход приложения с помощью тоста Android: тестирование устройств Android с помощью Robolectric и Mockito Как я могу позволить моему CountDownTimer сбрасываться после завершения обратного отсчета? Удалить разрыв строки в TabLayout Изображение SVG не отображается в android 3.0+ с тем же кодом Простой способ сделать динамическую, но квадратную компоновку Ошибка при выполнении команды adb программно Формат регистрации Android c2dm Маскированный ввод с помощью виджета EditText в Android Как я могу ссылаться на внешние файлы jar в общем каталоге (а не на lib) для создания проекта андроида с помощью ant? Нет вызова onStartCommand () после перезапуска аварийной службы в Android 2.3 Как отключить состояние отключенного состояния Spinner? Java.io.filenotfoundexception открыть сбой eacces (разрешение отклонено) на устройстве Проблема с DexIndexOverflowException после обновления до последней библиотеки приложений и поддержки Android: добавление границы вокруг textview

Android, как использовать Environment.getExternalStorageDirectory ()

Как я могу использовать Environment.getExternalStorageDirectory() для чтения сохраненного изображения с SD-карты или есть лучший способ сделать это?

Solutions Collecting From Web of "Android, как использовать Environment.getExternalStorageDirectory ()"

 Environment.getExternalStorageDirectory().getAbsolutePath() 

Дает вам полный путь к SDCard. Затем вы можете выполнять обычные операции ввода-вывода файлов с использованием стандартной Java.

Вот простой пример для записи файла:

 String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath(); String fileName = "myFile.txt"; // Not sure if the / is on the path or not File f = new File(baseDir + File.separator + fileName); f.write(...); f.flush(); f.close(); 

Редактировать:

К сожалению, вам нужен пример для чтения …

 String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath(); String fileName = "myFile.txt"; // Not sure if the / is on the path or not File f = new File(baseDir + File.Separator + fileName); FileInputStream fiStream = new FileInputStream(f); byte[] bytes; // You might not get the whole file, lookup File I/O examples for Java fiStream.read(bytes); fiStream.close(); 

Имейте в виду, что getExternalStorageDirectory () не будет работать должным образом на некоторых телефонах, например, Motorola razr maxx, так как он имеет 2 карты / mnt / sdcard и / mnt / sdcard-ext – для внутренних и внешних SD-карт. Вы будете получать ответ / mnt / sdcard только каждый раз. Google должен предоставить способ справиться с такой ситуацией. Поскольку это делает многие SD-карты (например, резервное копирование) неудачными на этих телефонах.

Как описано в Documentation Environment.getExternalStorageDirectory () :

Environment.getExternalStorageDirectory () Возвращает первичный общий / внешний каталог хранилища.

Это пример того, как использовать его для чтения изображения:

 String fileName = "stored_image.jpg"; String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath(); String pathDir = baseDir + "/Android/data/com.mypackage.myapplication/"; File f = new File(pathDir + File.separator + fileName); if(f.exists()){ Log.d("Application", "The file " + file.getName() + " exists!"; }else{ Log.d("Application", "The file no longer exists!"; }