2015-05-08 35 views
2

我正在android中製作文件資源管理器。所以我想當任何文件被點擊而不是目錄時,我想獲得可以打開它的應用程序的建議,如果沒有應用程序,那麼顯示一個dailog。我嘗試了一些解決方案,但毫無效果,所以現在我只是在顯示文件不在土司目錄在Android中使用默認應用打開文件

這裏是代碼的一部分:

protected void onListItemClick(ListView l, View v, int position, long id) { 
    String filename = (String) getListAdapter().getItem(position); 
    if (path.endsWith(File.separator)) { 
     filename = path + filename; 
    } else { 
     filename = path + File.separator + filename; 
    } 
    if (new File(filename).isDirectory()) { 
     Intent intent = new Intent(this, ListFileActivity.class); 
     intent.putExtra("path", filename); 
     startActivity(intent); 
    } else { 
     Toast.makeText(this, filename + " is not a directory", Toast.LENGTH_LONG).show(); 
    } 
} 
+0

「我嘗試了一些解決方案,但毫無效果」 - 是我們應該如何來幫助你,你是不是向我們展示代碼? – CommonsWare

回答

3

Android有一些內置Intent Action Type它可以幫助你打開或查看特定文件,但爲此,您需要知道要處理的文件類型。

假設如果您有分類的文檔類型,你可以使用的文件類型,

ACTION_OPEN_DOCUMENT具體MIME_TYPE(Android 4.4或更高)

或者如果你要處理一些媒體文件(音頻/視頻)

可以使用,

ACTION_VIEW 

要確定具體MIME_TYPE文件可以使用函數

guessContentTypeFromName (String url)Link

或者getMimeTypeFromExtension(String extension)Link

+1

較早的帖子,但快速參考http://stackoverflow.com/questions/6265298/action-view-intent-for-a--file-with-unknown-mimetype。我建議你使用最新的「意圖行動」。 – user370305

相關問題