Tôi đang cố gắng xác định Loại Mime/Media được lưu trữ trên thiết bị Android (thực ra là thiết bị ảo mà tôi đang sử dụng với trình mô phỏng). Tôi tìm thấy tài nguyên này Get the MIME Type from a File đó khuyến cáo các javax.activation.MimetypesFileTypeMap
, tuy nhiên khi tôi chạy đoạn mã sau tôi nhận được application/octet-stream
cho tất cả các loại tập tin:Java MimetypesFileTypeMap luôn trả về ứng dụng/octet-stream trên trình giả lập Android
MimetypesFileTypeMap map = new MimetypesFileTypeMap();
File dir = Environment.getExternalStorageDirectory();
File[] files = dir.listFiles();
String mimeType;
for(int i = 0; i < files.length; ++i) {
if(files[i].isDirectory() == false) {
mimeType = map.getContentType(files[i]);
if(mimeType.toLowerCase().equals("application/octet-stream")) {
Log.d("mytag",
String.format("Unable to determine the mime type of file %s.",
files[i].getName()));
}
}
}
Tôi đã thử nghiệm này với các tập tin có phần mở rộng sau: jpg, txt, doc, xslx và pdf và tất cả đều trở lại cùng một thứ. Có điều gì tôi phải làm để khởi tạo bản đồ không? Thư viện này có thể không tìm thấy danh sách các loại mime được hỗ trợ trên Android không? Có cách nào tốt hơn để lấy loại mime của một tệp trên Android không?
tôi đang gặp vấn đề tương tự (android không được tham gia), xem liên kết này http://stackoverflow.com/questions/ 6308142/add-mimetypes-to-mimetypesfiletypemap. Tôi nghĩ rằng chúng ta cần phải thêm một tập tin reosurce với một danh sách đầy đủ các loại mime, chưa thử nhưng tuy nhiên –