10 votos

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

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

14voto

Matthew Read Puntos 35808

adb shell echo $EXTERNAL_STORAGE . Todo el mérito es de Flow por llevarme a experimentar y encontrar esto.

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

2 votos

Buen trabajo en equipo :) +1

2 votos

¡Muy bien! Gracias. Tenga en cuenta, sin embargo, que si puede que tenga que escapar $ dependiendo de su shell. ejemplo: adb shell echo \$EXTERNAL_STORAGE

0 votos

Hmm, resulta que mi samsung vibrant me da un valor diferente para $EXTERNAL_STORAGE del que me da Environment.getExternalStorageDirectory(). Este no es el primer bug desagradable que encuentro en este teléfono.

6voto

Flow Puntos 14132

No creo que esto sea posible. Ver El puesto de Matthew

Pero vamos a tener un cierre de cómo Environment.getExternalStorageDirectory() devuelve el directorio de almacenamiento externo. Una mirada rápida en android/os/Environment.java muestra que todo lo que hace este método, es devolver una constante estática miembro del Archivo llamada EXTERNAL_STORAGE_DIRECTORY . Esta constante se inicializa con

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

que llama getDirectory()

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

Así que el directorio de almacenamiento externo no es otra cosa que una variable de entorno de java System (o una predefinida por defecto). Podrías intentar seguir este rastro más allá. Tal vez el directorio de almacenamiento externo es sólo una ruta codificada en algún archivo de configuración en el sistema de archivos. O tal vez hay una manera de leer estas variables de entorno a través de adb que no conozco.

2 votos

He descubierto el comando adb usando esta información, +1.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X