Bagaimana saya bisa menentukan direktori penyimpanan dari ADB?


9

Apakah ada cara saya dapat menggunakan ADB untuk menentukan direktori penyimpanan eksternal (setara dengan panggilan API Android Environment.getExternalStorageDirectory())?

Jawaban:


13

adb shell echo $EXTERNAL_STORAGE. Semua kredit mengalir ke Flow karena mengarahkan saya untuk bereksperimen dan menemukan ini.

Tentu saja Anda dapat menggunakan cd $EXTERNAL_STORAGEatau apa pun yang Anda butuhkan selama sesi shell adb atau dari emulator terminal.


2
Kerja Tim yang Baik :) +1
Alur

2
Baik sekali! Terima kasih! Perhatikan, meskipun, jika Anda mungkin perlu melarikan diri $ tergantung pada shell Anda. contoh: adb shell echo \ $ EXTERNAL_STORAGE
notlesh

Hmm, ternyata Samsung bersemangat saya memberi saya nilai yang berbeda untuk $ EXTERNAL_STORAGE daripada yang dilakukan Environment.getExternalStorageDirectory (). Ini bukan bug jahat pertama yang saya temukan di ponsel ini.
notlesh

@stephelton Itu mengecewakan. Yang mana yang salah? $ EXTERNAL_STORAGE benar untuk saya /mnt/sdcard/external_sd/,.
Matius Baca

6

Saya pikir ini tidak mungkin. Lihat Matthew's Post

Tapi mari kita kunci bagaimana Environment.getExternalStorageDirectory()mengembalikan direktori penyimpanan eksternal. Pandangan cepat dalam android/os/Environment.javamenunjukkan bahwa semua metode ini, mengembalikan anggota file konstanta statis disebut EXTERNAL_STORAGE_DIRECTORY. Konstanta ini diinisialisasi oleh

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

yang memanggil getDirectory()

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

Jadi direktori penyimpanan eksternal adalah variabel lingkungan Sistem java (atau standar yang ditentukan sebelumnya). Anda dapat mencoba mengikuti jejak ini lebih lanjut. Mungkin direktori penyimpanan eksternal hanyalah jalur kode yang sulit di beberapa file konfigurasi pada sistem file. Atau mungkin ada cara untuk membaca variabel-variabel lingkungan ini melalui adbyang saya tidak tahu.


2
Saya menemukan perintah adb menggunakan info ini, +1.
Matius Baca
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.