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ó 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:
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_STORAGE
hoặ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.
/mnt/sdcard/external_sd/
.
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.java
cho 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 adb
mà tôi không biết.