Как я должен ссылаться на "внешнее хранилище" в пользовательском интерфейсе на 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, который, возможно, не существовал, когда вы впервые задали этот вопрос.

Другие вопросы по тегам