Опираясь на ответ Динеша ...
Динеш предложил поискать в каталоге
/sys/class/mmc_host/mmc1/mmc1:*/
(где * - число) для файла с именем cid
, который дает нам содержимое регистра CID карты. Это работает во многих случаях и очень полезно для начала.
Но mmc1
не всегда является съемной SD-картой. Иногда, например на Motorola Droid Pro с Android API уровня 10 mmc0
- это съемная SD-карта, а mmc1
- это нечто иное. Я предполагаю, что mmc1
, когда он присутствует, указывает на какое-то внутреннее хранилище (возможно, несъемную карту microSD). На тестируемом нами дешевом планшете Android mmc0
- это SD-карта, а mmc1
.
нет.
То есть вы не можете просто предположить, что mmc1
- это SD-карта.
Проблеск надежды: кажется (пока), что, посмотрев файл type
в том же каталоге, что и файл cid
(например, /sys/class/mmc_host/mmc1/mmc1:0007/type
), мы можем определить, что есть что: значение типа SD
обозначает съемную SD-карту, а MMC
- нет.
Однако это всего лишь тестирование на нескольких устройствах Android. Я не могу найти никаких спецификаций относительно содержимого файла type
, поэтому, если кто-то еще знает о соответствующей документации, пожалуйста, дайте мне знать.
Конечно, MMC и SD - это всего лишь два разных стандарта технологий хранения, а SD обратно совместим с MMC. Так что это не обязательно случай, когда тип SD всегда соответствует внешней карте microSD. Кажется маловероятным, что MMC
вообще может указывать на карту microSD (если поле типа заполнено точно); но с другой стороны, вполне возможно, что несъемная SD-карта может иметь тип SD
.
Для дальнейшего изучения: работает ли этот подход, когда карта microSD подключена через USB-адаптер? В одном из моих тестов с планшетом USB-карта microSD отображалась как mmc1
с типом SD
.
.