Відповіді:
adb shell echo $EXTERNAL_STORAGE. Вся заслуга припадає на Flow за те, що я вела мене експериментувати і знаходити це.
Звичайно, ви можете використовувати cd $EXTERNAL_STORAGEабо будь-що інше, що може знадобитися під час сеансу оболонки adb або від емулятора терміналу.
/mnt/sdcard/external_sd/.
Я не думаю, що це можливо. Дивіться допис Метью
Але давайте заблокуємо, як Environment.getExternalStorageDirectory()повертає зовнішній каталог зберігання. Швидкий огляд android/os/Environment.javaпоказує, що всім цим методом є повернення статичної константи, що називається членом Файлу EXTERNAL_STORAGE_DIRECTORY. Ця константа ініціалізується
private static final File EXTERNAL_STORAGE_DIRECTORY
= getDirectory("EXTERNAL_STORAGE", "/sdcard");
який дзвонить getDirectory()
static File getDirectory(String variableName, String defaultPath) {
String path = System.getenv(variableName);
return path == null ? new File(defaultPath) : new File(path);
}
Отже, зовнішній каталог зберігання - це не що інше, як змінна середовище java System (або заздалегідь визначений за замовчуванням). Ви можете спробувати йти за цим слідом далі. Можливо, зовнішній каталог зберігання - це лише важко закодований шлях у деякому файлі конфігурації файлової системи. Або, можливо, є спосіб прочитати ці змінні середовища через adbте, що я не знаю.