2011-05-26 77 views
1

我想爲Android開發一個文件夾瀏覽器.. 一個文件夾可以有任何類型的文件,即doc文件,txt文件,mp3,avi,apk文件等。 我如何推出基於用戶點擊了文件... 我的意思是我如何構造一個文件型的意圖...... 感謝 普拉香特基於文件類型的Android意圖

回答

0

特定的應用程序創建一個活動。在哪裏你可以找到文件的擴展名,無論是mp3還是dic等等。根據擴展名從這個活動中調用另一個活動。

感謝 迪帕克

+0

我不想硬編碼在我app..cant擴展基於活動推出它由系統來完成itself..i要使用通用的一個,所以在某些時候在未來,如果用戶爲某些「.abc」擴展程序安裝應用程序,那麼使用我的應用程序並單擊「.abc」文件必須啓動該應用程序。 – prash 2011-05-26 06:09:45

2

剛剛成立的意圖的類型,例如:intent.setType("video/mpeg");

編輯:使用MimeTypeMap動態獲取文件的MIME類型。

+0

這可以爲已知的文件類型完成...假設有新的文件類型說.rtf和用戶已經安裝了一些應用程序來顯示.rtf文件..然後我將不得不重新編碼我的應用程序來運行這樣的文件... – prash 2011-05-26 06:07:20

+0

不,因爲你可以從文件中獲得MIME類型;)看我的編輯! – alopix 2011-05-26 09:26:22

+0

嗨。您能否告訴我是否可以根據MIME類型顯示文件預覽。我的意思是,如果它是一個視頻,我想展示一個預覽,如果它是一個pdf,我只想顯示一個圖標,並讓用戶通過點擊打開它。這可能嗎? – Vinodtiru 2011-07-12 05:15:14

0

可能是這樣的......因爲我想在我的代碼...

//differentiate file type 
    String filename = o.getName(); 
    String filenameArray[] = filename.split("\\."); 
    String extension = filenameArray[filenameArray.length-1]; 

    Intent intent = new Intent(); 
    intent.setAction(Intent.ACTION_VIEW); 

    if (extension.contains("png") || extension.contains("gif") || extension.contains("jpg") 
      || extension.contains("jpeg") || extension.contains("bmp")) 
    { 
     intent.setDataAndType(Uri.parse("file://" + o.getPath()), "image/*"); 
    } 
    if (extension.contains("txt") || extension.contains("csv") || extension.contains("xml")) 
    { 
     intent.setDataAndType(Uri.parse("file://" + o.getPath()), "text/*"); 
    } 
    if (extension.contains("pdf")) 
    { 
     intent.setDataAndType(Uri.parse("file://" + o.getPath()), "application/pdf"); 
    } 
    if (extension.contains("doc") || extension.contains("docx")) 
    { 
     intent.setDataAndType(Uri.parse("file://" + o.getPath()), "application/msword"); 
    } 
    if (extension.contains("mp3") || extension.contains("wav") || extension.contains("oog") 
      || extension.contains("mid") || extension.contains("amr") || extension.contains("midi")) 
    { 
     intent.setDataAndType(Uri.parse("file://" + o.getPath()), "audio/*"); 
    } 
    if (extension.contains("mpeg") || extension.contains("3gp")) 
    { 
     intent.setDataAndType(Uri.parse("file://" + o.getPath()), "video/*"); 
    } 

我還在尋找短代碼,但我希望這個代碼可以幫助你..

0

我找到了。也許這可以幫助你:

Intent intent= new Intent(); 
intent.setAction(Intent.ACTION_VIEW); 

File file = new File(filePath); 

MimeTypeMap mime = MimeTypeMap.getSingleton(); 
String ext = file.getName().substring(file.getName().indexOf(".")+1); 
String type = mime.getMimeTypeFromExtension(ext); 

intent.setDataAndType(Uri.fromFile(file), type);