В Android внутреннее хранилище всегда фиксировано и ограничено в размерах, но сейчас все современные Android устройства поддерживают внешние носители данных (External storage), такие как например SD-карты памяти (MicroSD), но в отличие от внутреннего хранилища, внешнее хранилище может не всегда быть доступно. Поэтому, перед его использованием, необходимо всегда проверять, смонтировано ли оно.
Для этого используйте метод getExternalStorageState() класса Environment
Для этого используйте метод getExternalStorageState() класса Environment
if(Environment.getExternalStorageState()
.equals(Environment.MEDIA_MOUNTED)) {
// External storage is usable
} else {
// External storage is not usable
// Try again later
}
Если внешнее хранилище доступно, то нужно получить путь к файлу внешнего хранилища для своего приложения, вызвав метод getExternalFilesDir() и передав null в качестве аргумента. Далее можно использовать этот путь для ссылки на файлы внутри каталога.
Например, можно ссылаться на файл с именем bob.jpg в каталоге внешнего хранилища приложения:
Например, можно ссылаться на файл с именем bob.jpg в каталоге внешнего хранилища приложения:
File bob = new File(getExternalFilesDir(null), "bob.jpg");
Также необходимо получить разрешение WRITE_EXTERNAL_STORAGE, для доступа к чтению и записи во внешнем хранилище данных. Разрешение WRITE_EXTERNAL_STORAGE неявно дает также разрешение на чтение external storage
Класс Environment предлагает метод getExternalStoragePublicDirectory() для определения путей этих общих каталогов.
Класс Environment предлагает метод getExternalStoragePublicDirectory() для определения путей этих общих каталогов.
Например, передав этому методу значение Environment.DIRECTORY_PICTURES, вы можете определить путь к общедоступному каталогу, в котором вы можете хранить фотографии. Аналогично, если вы передадите этому методу значение Environment.DIRECTORY_MOVIES, вы получите путь к общедоступному каталогу, в котором могут быть сохранены фильмы.
Вот как вы можете ссылаться на файл bob.jpg в каталоге общих изображений:
File bobInPictures = new File(
Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES),
"bob.jpg"
);
Когда у вас есть объект File, вы можете снова использовать классы FileInputStream и FileOutputStream для чтения или записи на него.
Комментариев нет:
Отправить комментарий