Como posso determinar o diretório de armazenamento do ADB?


9

Existe uma maneira de usar o ADB para determinar o diretório de armazenamento externo (equivalente à chamada da API do Android Environment.getExternalStorageDirectory())?

Respostas:


13

adb shell echo $EXTERNAL_STORAGE. Todo o crédito vai para o Flow por me levar a experimentar e encontrar isso.

Naturalmente, você pode usar cd $EXTERNAL_STORAGEou o que mais for necessário durante uma sessão do shell adb ou em um emulador de terminal.


2
Bom trabalho em equipe :) +1
Fluxo

2
Muito bom! Obrigado! Note, no entanto, que se você precisar escapar $, dependendo do seu shell. exemplo: adb shell echo \ $ EXTERNAL_STORAGE
notlesh

Hmm, acontece que meu vibrante samsung me dá um valor diferente para $ EXTERNAL_STORAGE do que Environment.getExternalStorageDirectory (). Este não é o primeiro bug desagradável que encontrei neste telefone.
Notreh #

@stephelton Isso é decepcionante. Qual deles está incorreto? $ EXTERNAL_STORAGE está correto para mim /mnt/sdcard/external_sd/,.
Mateus Leia

6

Eu não acho que isso seja possível. Ver a publicação de Matthew

Mas vamos ter um bloqueio sobre como Environment.getExternalStorageDirectory()retorna o diretório de armazenamento externo. Uma rápida olhada android/os/Environment.javamostra que todo esse método faz, está retornando um membro constante de arquivo estático chamado EXTERNAL_STORAGE_DIRECTORY. Essa constante é inicializada por

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

que chama getDirectory()

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

Portanto, o diretório de armazenamento externo nada mais é do que uma variável de ambiente java System (ou um padrão predefinido). Você pode tentar seguir esse rastreamento ainda mais. Talvez o diretório de armazenamento externo seja apenas um caminho codificado em algum arquivo de configuração no sistema de arquivos. Ou talvez haja uma maneira de ler essas variáveis ​​de ambiente por meio adbdisso que eu não conheço.


2
Eu descobri o comando adb usando esta informação, +1.
Matthew Leia
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.