2012-04-21 77 views
5

我正在開發一個android中的文件瀏覽器應用程序。 如何處理未知擴展名的文件?當我嘗試打開這樣的文件時,拋出ActivityNotFound異常。但我希望系統彈出應用程序列表,以便我們可以手動選擇一個應用程序來打開它。 任何人都可以幫助我嗎?Android:如何打開未知文件類型

我開始通過將文件及其擴展名綁定到意圖來打開文件。

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){} 

回答

4

ActivityNotFound時沒有應用程序被註冊,可以處理特定的文件類型拋出。這意味着您要顯示的應用列表將爲空。

處理他情況的最合適的方法是捕獲ActivityNotFound異常並顯示通知用戶沒有合適的應用程序來打開文件。

所有安卓瀏覽器都以這種方式進行。

+0

華碩文件管理器(4.4)給出的一個通用的「打開爲」列表四個項目代表通用類別(文本,圖像,音頻,視頻)。選擇一個會給出一個關聯應用程序列表來打開文件(非常像Windows)。 – samosaris 2017-07-12 13:48:01

相關問題