ADB'den depolama dizinini nasıl belirleyebilirim?


9

Harici depolama dizinini (Android API çağrısına eşdeğer) belirlemek için ADB'yi kullanabilmemin bir yolu var mı Environment.getExternalStorageDirectory()?

Yanıtlar:


13

adb shell echo $EXTERNAL_STORAGE. Tüm krediler, bunu denemem ve bulmam için Flow'a gidiyor.

Doğal olarak, cd $EXTERNAL_STORAGEbir adb kabuk oturumu sırasında veya bir terminal öykünücüsünden başka herhangi bir şey kullanabilirsiniz .


2
İyi Takım Çalışması :) +1
Akış

2
Çok iyi! Teşekkürler! Bununla birlikte, kabuğunuza bağlı olarak $ 'dan kaçmanız gerekebileceğini unutmayın. örnek: adb shell echo \ $ EXTERNAL_STORAGE
notlesh

Hmm, samsung canlımın $ EXTERNAL_STORAGE için bana Environment.getExternalStorageDirectory () 'den farklı bir değer verdiği ortaya çıktı. Bu, bu telefonda bulduğum ilk kötü hata değil.
notlesh

@stephelton Bu hayal kırıklığı yaratıyor. Hangisi yanlış? $ EXTERNAL_STORAGE benim için doğru /mnt/sdcard/external_sd/.
Matthew

6

Bunun mümkün olduğunu düşünmüyorum. Matthew's Post'u görün

Ancak Environment.getExternalStorageDirectory()harici depolama dizinini nasıl döndürdüğüne bir kilit verelim . Hızlı bir bakış android/os/Environment.javatüm bu yöntemin yaptığı, denilen statik sabit bir Dosya üyesi döndürdüğünü gösterir EXTERNAL_STORAGE_DIRECTORY. Bu sabit,

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

hangi çağrılar getDirectory()

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

Harici depolama dizini bir java Sistem ortam değişkeninden (veya önceden tanımlanmış bir varsayılandan) başka bir şey değildir. Bu izi daha fazla takip etmeyi deneyebilirsiniz. Belki de harici depolama dizini, dosya sistemindeki bazı yapılandırma dosyalarındaki sabit kodlanmış bir yoldur. Ya da belki de adbbilmediğim bu ortam değişkenlerini okumanın bir yolu var .


2
Bu bilgiyi kullanarak +1 komutunu anladım.
Matthew,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.