Разница между getExternalStorageDirectory () и getExternalStorageState ()

Меня немного смущает разница между getExternalStorageDirectory () и getExternalStorageState ().

Для getExternalStorageState () в документации по Android написано:

общедоступная статическая строка getExternalStorageState ()

Получает текущее состояние основного «внешнего» запоминающего устройства. Смотрите также

getExternalStorageDirectory()

Я бы прочитал это относительно того, доступно ли «внешнее» хранилище, но оно возвращает строку. Так что это за струна? Если это путь к хранилищу, то чем он отличается от getExternalStorageDirectory(), который возвращает путь к тому, что считается «внешним» хранилищем? Что такое «состояние», если это не путь?

Может кто-нибудь пояснить, в чем разница, и почему вы бы использовали одно вместо другого?


person BlackHatSamurai    schedule 16.08.2013    source источник


Ответы (1)


Из документации по адресу http://developer.android.com/reference/android/os/Environment.html (см. Раздел Константы вверху):

String  MEDIA_BAD_REMOVAL   getExternalStorageState() returns MEDIA_BAD_REMOVAL if the media was removed before it was unmounted.
String  MEDIA_CHECKING  getExternalStorageState() returns MEDIA_CHECKING if the media is present and being disk-checked
String  MEDIA_MOUNTED   getExternalStorageState() returns MEDIA_MOUNTED if the media is present and mounted at its mount point with read/write access.
String  MEDIA_MOUNTED_READ_ONLY     getExternalStorageState() returns MEDIA_MOUNTED_READ_ONLY if the media is present and mounted at its mount point with read only access.
String  MEDIA_NOFS  getExternalStorageState() returns MEDIA_NOFS if the media is present but is blank or is using an unsupported filesystem
String  MEDIA_REMOVED   getExternalStorageState() returns MEDIA_REMOVED if the media is not present.
String  MEDIA_SHARED    getExternalStorageState() returns MEDIA_SHARED if the media is present not mounted, and shared via USB mass storage.
String  MEDIA_UNMOUNTABLE   getExternalStorageState() returns MEDIA_UNMOUNTABLE if the media is present but cannot be mounted.
String  MEDIA_UNMOUNTED     getExternalStorageState() returns MEDIA_UNMOUNTED if the media is present but not mounted.

Он возвращает одну из этих констант.

getExternalStorageDirectory() возвращает путь к устройству.

person Jason C    schedule 16.08.2013
comment
Я этого даже не заметил. Спасибо! Отличный ответ. - person BlackHatSamurai; 16.08.2013
comment
да, я бы подумал, что они будут использовать перечисления для чего-то вроде этого. - person BlackHatSamurai; 17.08.2013
comment
Кто знает. String действительно имеет то преимущество, что позволяет устройствам возвращать неопределенные состояния, которые все еще имеют связанный с ними описательный текст. Это не самый надежный способ добиться этого, но, по крайней мере, его просто реализовать. - person Jason C; 17.08.2013