Làm cách nào để phân phối tệp từ bộ nhớ ngoài SECONDARY bằng cách sử dụng FileProvider
?Trình lưu trữ tệp và bộ nhớ ngoài thứ cấp
Việc thực hiện hiện hành của FileProvider
xử lý chỉ mục đầu tiên được trả về bởi ContextCompat.getExternalFilesDirs
...
} else if (TAG_EXTERNAL_FILES.equals(tag)) {
File[] externalFilesDirs = ContextCompat.getExternalFilesDirs(context, null);
if (externalFilesDirs.length > 0) {
target = externalFilesDirs[0];
}
}
...
Dường như, mà không có cách nào để xác định một mục <path>
cho FileProvider
, phù hợp với đường dẫn lưu trữ bên ngoài thứ yếu. ..
Bạn có ý gì với bộ nhớ ngoài thứ cấp? – greenapps
Các thư mục được trả về bởi 'ContextCompat.getExternalFilesDirs' với chỉ mục mảng> 0. Trên hầu hết các thiết bị, nó có thể là thẻ sd có thể tháo rời. – artkoenig
AFAIK, 'FileProvider' không hỗ trợ điều này. Bạn có thể sắp xếp thứ gì đó với [my 'StreamProvider'] (https://github.com/commonsguy/cwac-provider), mặc dù không có sự hỗ trợ cho điều này" ngoài hộp ". Tôi đã thêm rằng vào danh sách việc cần làm của tôi cho 'StreamProvider', khi bạn thực hiện một điểm tốt. Đặc biệt là vì không có quyền ứng dụng nào liên quan đến các vị trí này, nên chúng phải được phân phát, ít nhất là khi chúng tồn tại. Điều gì có thể phức tạp là xử lý chính xác trường hợp lưu trữ di động không có sẵn, nhưng bạn đã yêu cầu nó được phục vụ. – CommonsWare