Как я должен ссылаться на "внешнее хранилище" в пользовательском интерфейсе на Android?
Очевидно, что внешнее хранилище на Android (на которое ссылается Environment.getExternalStorageDirectory) не обязательно должно быть SD-картой. На самом деле, он даже не должен быть внешним!
Как я могу сослаться на это хранилище в пользовательском интерфейсе? Например, если он в данный момент недоступен, я хочу сообщить пользователю об ошибке. Если я скажу "внешнее хранилище" или "SD-карта", я могу запутать пользователей некоторых устройств. Есть ли способ правильно идентифицировать это?
2 ответа
Посмотрим на документы для Environment.getExternalStorageDirectory ():
Примечание: не смущайтесь словом "внешний" здесь. Этот каталог лучше всего рассматривать как носитель / общее хранилище. Это файловая система, которая может содержать сравнительно большой объем данных и совместно используется всеми приложениями (не применяет разрешения). Традиционно это SD-карта, но она также может быть реализована как встроенное хранилище в устройстве, которое отличается от защищенного внутреннего хранилища и может быть смонтировано как файловая система на компьютере.
Похоже, общее хранилище было бы хорошим термином.
Мне нужно решить ту же проблему, и я думаю, что только что нашла наше решение!
http://developer.android.com/reference/android/os/Environment.html
Класс Environment предоставляет следующий метод:
public static boolean isExternalStorageRemovable()
Возвращает, является ли основное "внешнее" устройство хранения съемным. Если возвращено значение true, это устройство является, например, SD-картой, которую пользователь может извлечь. Если возвращается false, хранилище встроено в устройство и не может быть физически удалено.
Похоже, именно то, что нам нужно.
РЕДАКТИРОВАТЬ Я только что заметил, что он был добавлен в API уровня 9, который, возможно, не существовал, когда вы впервые задали этот вопрос.