Найти ярлык громкости SD-карты на Android

Можно ли узнать объемную метку SD-карты, вставленной в устройство Android?

Я понимаю, что в Android предусмотрено только одно "внешнее хранилище" (как Environment.getExternalStorageDirectory()), но есть довольно много устройств в дикой природе, которые имеют внутреннюю флэш-память как "внешнее хранилище" и SD-карту, установленную под ту или иную более дикую комбинацию (см. этот другой вопрос). Можно перечислить эти дополнительные устройства, прочитав /proc/mounts, но нам нужно что-то, чтобы идентифицировать их для пользователя. Есть ли шанс попасть на их объемные ярлыки?

Я проверил, что драйвер Linux vfat полностью игнорирует метку тома и что blkid из util-linux читает сам vfat. Я также проверил, что, по крайней мере на моем устройстве, блочное устройство SD-карты имеет режим 660 и владелец root.root так что я не могу этого сделать. Таким образом, в основном все сводится к тому, есть ли какая-либо утилита, которая могла бы прочитать его.

4 ответа

Я нашел решение.

Самое простое решение - это создать busybox и использовать его следующим образом: busybox blkid

Сложное решение - найти blkid для Android и найти то, что вам нужно, в его исходном коде (функция blkid_dev_devname).

Попробуйте разобрать вывод blkid команда. У меня это работает, но я не уверен, зависит ли это от прошивки или нет. я получил permission denied с этой командой на AVD.

Я не знаю, как это работает точно в Android, но в Linux у меня есть сообщение ядра о монтировании SD-карты, где указано имя тома. Вы можете попробовать dmesg и cat /sys/devices/mmc... (или что-то подобное)

Я не знаю, может ли это вам помочь: если вы используете DDMS, вы можете видеть папки системы. В моем случае я нашел SD-карту в: /mnt/media_rw.

Вы можете получить больше информации здесь и здесь

Я надеюсь, что это помогает.

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