Làm cách nào để xác định thư mục lưu trữ từ ADB?


9

Có cách nào để tôi có thể sử dụng ADB để xác định thư mục lưu trữ ngoài (tương đương với lệnh gọi API Android Environment.getExternalStorageDirectory()) không?

Câu trả lời:


13

adb shell echo $EXTERNAL_STORAGE. Tất cả tín dụng dành cho Flow để dẫn tôi thử nghiệm và tìm thấy điều này.

Đương nhiên, bạn có thể sử dụng cd $EXTERNAL_STORAGEhoặc bất cứ thứ gì bạn có thể cần trong phiên shell adb hoặc từ trình giả lập thiết bị đầu cuối.


2
Làm việc nhóm tốt :) +1
Lưu lượng

2
Rất tốt! Cảm ơn! Tuy nhiên, lưu ý rằng nếu bạn có thể cần thoát $ tùy thuộc vào vỏ của bạn. ví dụ: echo adb shell \ $ EXTERNAL_STORAGE
thịt

Hmm, hóa ra samsung sôi động của tôi mang lại cho tôi một giá trị khác với $ EXTERNAL_STORAGE so với Môi trường.getExternalStorageDirectory (). Đây không phải là lỗi khó chịu đầu tiên tôi tìm thấy trên điện thoại này.
thịt

@stephelton Thật đáng thất vọng. Cái nào không đúng? $ EXTERNAL_STORAGE là chính xác đối với tôi , /mnt/sdcard/external_sd/.
Matthew đọc

6

Tôi không nghĩ rằng điều này là có thể. Xem bài của Matthew

Nhưng hãy khóa cách Environment.getExternalStorageDirectory()trả về thư mục lưu trữ ngoài. Một cái nhìn nhanh android/os/Environment.javacho thấy rằng tất cả phương thức này thực hiện, đang trả về một thành viên tệp hằng số tĩnh được gọi EXTERNAL_STORAGE_DIRECTORY. Hằng số này được khởi tạo bởi

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

mà gọi getDirectory()

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

Vì vậy, thư mục lưu trữ ngoài không có gì khác là biến môi trường hệ thống java (hoặc mặc định được xác định trước). Bạn có thể cố gắng theo dõi dấu vết này hơn nữa. Có thể thư mục lưu trữ ngoài chỉ là một đường dẫn được mã hóa cứng trong một số tệp cấu hình trên hệ thống tệp. Hoặc có thể có một cách để đọc các biến môi trường này adbmà tôi không biết.


2
Tôi đã tìm ra lệnh adb bằng thông tin này, +1.
Matthew đọc
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.