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())?

notlesh
sumber

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.

Matius Baca
sumber
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.

Mengalir
sumber
2
Saya menemukan perintah adb menggunakan info ini, +1.
Matius Baca