¿Cómo puedo determinar el directorio de almacenamiento desde ADB?

¿Hay alguna forma en que pueda usar ADB para determinar el directorio de almacenamiento externo (equivalente a la llamada a la API de Android Environment.getExternalStorageDirectory())?

Respuestas (2)

adb shell echo $EXTERNAL_STORAGE. Todo el crédito va para Flow por llevarme a experimentar y encontrar esto.

Naturalmente, puede usar cd $EXTERNAL_STORAGEo cualquier otra cosa que pueda necesitar durante una sesión de adb shell o desde un emulador de terminal.

Buen trabajo en equipo :) +1
¡Muy bien! ¡Gracias! Tenga en cuenta, sin embargo, que si necesita escapar $ dependiendo de su caparazón. ejemplo: adb shell echo \$EXTERNAL_STORAGE
Hmm, resulta que mi Samsung vibrante me da un valor diferente para $EXTERNAL_STORAGE que para Environment.getExternalStorageDirectory(). Este no es el primer error desagradable que encuentro en este teléfono.
@stephelton Eso es decepcionante. ¿Cuál es incorrecto? $EXTERNAL_STORAGE es correcto para mí, /mnt/sdcard/external_sd/.

No creo que esto sea posible. Ver la publicación de Mateo

Pero analicemos cómo Environment.getExternalStorageDirectory()devuelve el directorio de almacenamiento externo. Una mirada rápida android/os/Environment.javamuestra que todo lo que hace este método es devolver un miembro de archivo constante estático llamado EXTERNAL_STORAGE_DIRECTORY. Esta constante es inicializada por

private static final File EXTERNAL_STORAGE_DIRECTORY
        = getDirectory("EXTERNAL_STORAGE", "/sdcard");

que llamagetDirectory()

static File getDirectory(String variableName, String defaultPath) {
    String path = System.getenv(variableName);
    return path == null ? new File(defaultPath) : new File(path);
}

Entonces, el directorio de almacenamiento externo no es más que una variable de entorno del sistema Java (o un valor predeterminado predefinido). Podrías intentar seguir más este rastro. Tal vez el directorio de almacenamiento externo sea solo una ruta codificada en algún archivo de configuración en el sistema de archivos. O tal vez haya una manera de leer estas variables de entorno a través de adbeso, no lo sé.

Descubrí el comando adb usando esta información, +1.