Як я можу визначити каталог зберігання з ADB?


9

Чи можна використовувати ADB для визначення зовнішнього каталогу зберігання (еквівалент виклику Android API Environment.getExternalStorageDirectory())?

Відповіді:


13

adb shell echo $EXTERNAL_STORAGE. Вся заслуга припадає на Flow за те, що я вела мене експериментувати і знаходити це.

Звичайно, ви можете використовувати cd $EXTERNAL_STORAGEабо будь-що інше, що може знадобитися під час сеансу оболонки adb або від емулятора терміналу.


2
Хороша командна робота :) +1
триває

2
Дуже добре! Дякую! Зауважте, що якщо вам може знадобитися втекти $ залежно від вашої оболонки. приклад: adho shell echo \ $ EXTERNAL_STORAGE
notlesh

Хм, виявляється, що мій яскравий Samsung дає мені інше значення для $ EXTERNAL_STORAGE, ніж це Environment.getExternalStorageDirectory (). Це не перша неприємна помилка, яку я знайшов на цьому телефоні.
нотлеш

@stephelton Це невтішно. Який невірний? $ EXTERNAL_STORAGE є правильним для мене /mnt/sdcard/external_sd/.
Матвій

6

Я не думаю, що це можливо. Дивіться допис Метью

Але давайте заблокуємо, як 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те, що я не знаю.


2
Я зрозумів команду adb, використовуючи цю інформацію, +1.
Матвій
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.