2012-04-21 27 views
5

Tôi đang phát triển ứng dụng trình khám phá tệp trong Android. Cách xử lý các tệp có tiện ích mở rộng không xác định? Khi tôi cố gắng mở loại tệp như vậy, ngoại lệ ActivityNotFound ném của nó. Nhưng tôi muốn hệ thống bật lên danh sách ứng dụng để chúng tôi có thể chọn một ứng dụng để mở ứng dụng theo cách thủ công. Có ai giúp tôi ở đây không?Android: Cách mở một loại tệp không xác định

Tôi bắt đầu hoạt động để mở tệp bằng cách ràng buộc tệp và tiện ích của tệp với mục đích.

Intent intent = new Intent(Intent.ACTION_VIEW); 
MimeTypeMap mime = MimeTypeMap.getSingleton(); 
String ext = file.getName().substring(file.getName().lastIndexOf(".") + 1); 
String type = mime.getMimeTypeFromExtension(ext); 
intent.setDataAndType(Uri.fromFile(new File(file.toString())), type); 
try 
{ 
    startActivity(intent); 
} 
catch(Exception e){} 

Trả lời

4

ActivityNotFound được ném khi không có ứng dụng nào được đăng ký có thể xử lý loại tệp cụ thể. Điều này có nghĩa là danh sách ứng dụng bạn muốn hiển thị sẽ trống.

Cách thích hợp nhất để giải quyết tình huống này là bắt giữ ActivityNotFound ngoại lệ và hiển thị bánh mì nướng thông báo cho người dùng rằng không có ứng dụng thích hợp nào để mở tệp.

Tất cả trình duyệt Android đều hoạt động theo cách này.

+0

Giám đốc Asus Tệp (4.4) cung cấp cho một generic "Mở dưới dạng" danh sách với bốn mục đại diện cho các loại chung chung (Văn bản, Hình ảnh, Âm thanh, Video). Chọn một ứng dụng sẽ cung cấp danh sách các ứng dụng được liên kết để mở tệp bằng (giống như Windows). – samosaris

Các vấn đề liên quan