1. 程式人生 > >Android開啟各種型別的檔案方法總結

Android開啟各種型別的檔案方法總結

很簡單,通過呼叫系統的intent,我們可以開啟各種檔案,不熟悉的朋友可以瞭解下action、datatype、uri的相關知識。

通用方法如下:

    public static Intent openFile(String filePath){  
      
            File file = new File(filePath);  
            if(!file.exists()) return null;  
            /* 取得副檔名 */  
            String end=file.getName().substring(file.getName().lastIndexOf(".") + 1,file.getName().length()).toLowerCase();   
            /* 依副檔名的型別決定MimeType */  
            if(end.equals("m4a")||end.equals("mp3")||end.equals("mid")||  
                    end.equals("xmf")||end.equals("ogg")||end.equals("wav")){  
                return getAudioFileIntent(filePath);  
            }else if(end.equals("3gp")||end.equals("mp4")){  
                return getAudioFileIntent(filePath);  
            }else if(end.equals("jpg")||end.equals("gif")||end.equals("png")||  
                    end.equals("jpeg")||end.equals("bmp")){  
                return getImageFileIntent(filePath);  
            }else if(end.equals("apk")){  
                return getApkFileIntent(filePath);  
            }else if(end.equals("ppt")){  
                return getPptFileIntent(filePath);  
            }else if(end.equals("xls")){  
                return getExcelFileIntent(filePath);  
            }else if(end.equals("doc")){  
                return getWordFileIntent(filePath);  
            }else if(end.equals("pdf")){  
                return getPdfFileIntent(filePath);  
            }else if(end.equals("chm")){  
                return getChmFileIntent(filePath);  
            }else if(end.equals("txt")){  
                return getTextFileIntent(filePath,false);  
            }else{  
                return getAllIntent(filePath);  
            }  
        }  
          
        //Android獲取一個用於開啟APK檔案的intent  
        public static Intent getAllIntent( String param ) {  
      
            Intent intent = new Intent();    
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);    
            intent.setAction(android.content.Intent.ACTION_VIEW);    
            Uri uri = Uri.fromFile(new File(param ));  
            intent.setDataAndType(uri,"*/*");   
            return intent;  
        }  
        //Android獲取一個用於開啟APK檔案的intent  
        public static Intent getApkFileIntent( String param ) {  
      
            Intent intent = new Intent();    
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);    
            intent.setAction(android.content.Intent.ACTION_VIEW);    
            Uri uri = Uri.fromFile(new File(param ));  
            intent.setDataAndType(uri,"application/vnd.android.package-archive");   
            return intent;  
        }  
      
        //Android獲取一個用於開啟VIDEO檔案的intent  
        public static Intent getVideoFileIntent( String param ) {  
      
            Intent intent = new Intent("android.intent.action.VIEW");  
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);  
            intent.putExtra("oneshot", 0);  
            intent.putExtra("configchange", 0);  
            Uri uri = Uri.fromFile(new File(param ));  
            intent.setDataAndType(uri, "video/*");  
            return intent;  
        }  
      
        //Android獲取一個用於開啟AUDIO檔案的intent  
        public static Intent getAudioFileIntent( String param ){  
      
            Intent intent = new Intent("android.intent.action.VIEW");  
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);  
            intent.putExtra("oneshot", 0);  
            intent.putExtra("configchange", 0);  
            Uri uri = Uri.fromFile(new File(param ));  
            intent.setDataAndType(uri, "audio/*");  
            return intent;  
        }  
      
        //Android獲取一個用於開啟Html檔案的intent     
        public static Intent getHtmlFileIntent( String param ){  
      
            Uri uri = Uri.parse(param ).buildUpon().encodedAuthority("com.android.htmlfileprovider").scheme("content").encodedPath(param ).build();  
            Intent intent = new Intent("android.intent.action.VIEW");  
            intent.setDataAndType(uri, "text/html");  
            return intent;  
        }  
      
        //Android獲取一個用於開啟圖片檔案的intent  
        public static Intent getImageFileIntent( String param ) {  
      
            Intent intent = new Intent("android.intent.action.VIEW");  
            intent.addCategory("android.intent.category.DEFAULT");  
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
            Uri uri = Uri.fromFile(new File(param ));  
            intent.setDataAndType(uri, "image/*");  
            return intent;  
        }  
      
        //Android獲取一個用於開啟PPT檔案的intent     
        public static Intent getPptFileIntent( String param ){    
      
            Intent intent = new Intent("android.intent.action.VIEW");     
            intent.addCategory("android.intent.category.DEFAULT");     
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);     
            Uri uri = Uri.fromFile(new File(param ));     
            intent.setDataAndType(uri, "application/vnd.ms-powerpoint");     
            return intent;     
        }     
      
        //Android獲取一個用於開啟Excel檔案的intent     
        public static Intent getExcelFileIntent( String param ){    
      
            Intent intent = new Intent("android.intent.action.VIEW");     
            intent.addCategory("android.intent.category.DEFAULT");     
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);     
            Uri uri = Uri.fromFile(new File(param ));     
            intent.setDataAndType(uri, "application/vnd.ms-excel");     
            return intent;     
        }     
      
        //Android獲取一個用於開啟Word檔案的intent     
        public static Intent getWordFileIntent( String param ){    
      
            Intent intent = new Intent("android.intent.action.VIEW");     
            intent.addCategory("android.intent.category.DEFAULT");     
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);     
            Uri uri = Uri.fromFile(new File(param ));     
            intent.setDataAndType(uri, "application/msword");     
            return intent;     
        }     
      
        //Android獲取一個用於開啟CHM檔案的intent     
        public static Intent getChmFileIntent( String param ){     
      
            Intent intent = new Intent("android.intent.action.VIEW");     
            intent.addCategory("android.intent.category.DEFAULT");     
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);     
            Uri uri = Uri.fromFile(new File(param ));     
            intent.setDataAndType(uri, "application/x-chm");     
            return intent;     
        }     
      
        //Android獲取一個用於開啟文字檔案的intent     
        public static Intent getTextFileIntent( String param, boolean paramBoolean){     
      
            Intent intent = new Intent("android.intent.action.VIEW");     
            intent.addCategory("android.intent.category.DEFAULT");     
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);     
            if (paramBoolean){     
                Uri uri1 = Uri.parse(param );     
                intent.setDataAndType(uri1, "text/plain");     
            }else{     
                Uri uri2 = Uri.fromFile(new File(param ));     
                intent.setDataAndType(uri2, "text/plain");     
            }     
            return intent;     
        }    
        //Android獲取一個用於開啟PDF檔案的intent     
        public static Intent getPdfFileIntent( String param ){     
      
            Intent intent = new Intent("android.intent.action.VIEW");     
            intent.addCategory("android.intent.category.DEFAULT");     
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);     
            Uri uri = Uri.fromFile(new File(param ));     
            intent.setDataAndType(uri, "application/pdf");     
            return intent;     
        }  

來自:http://blog.csdn.net/eclipsexys/article/details/39552501

相關推薦

Android開啟各種型別檔案方法總結

很簡單,通過呼叫系統的intent,我們可以開啟各種檔案,不熟悉的朋友可以瞭解下action、datatype、uri的相關知識。 通用方法如下: public static Intent openFile(String filePath){ File fil

android Intent開啟各種型別檔案

import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.net.Uri.Builder; import java.io.File;

JS各種基本資料型別常用方法總結(看這篇就夠了)

所有語言的基本資料型別就是那麼幾種,因為之前一直從事移動端,在學習js的過程中,總結一下js的基本型別及用法。 JavaScript 資料型別:字串、數字、布林,物件、Null、Undefined 1.String(字串):  字串可以是引號中的任意文字。您可以使用

Android開啟各種檔案的MIME TYPE-setDataAndType函式中的Type關聯

MIME:全稱Multipurpose Internet Mail Extensions,多功能Internet 郵件擴充服務。它是一種多用途網際郵件擴充協議,在1992年最早應用於電子郵件系統,但後來也應用到瀏覽器。MIME型別就是設定某種副檔名的檔案用一種應用程式來開啟的方式型別,當該副檔名檔案被訪問

android開啟各種檔案的intent

import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.net.Uri.Builder; import java.io.File; import android.con

Android編譯過程總結android各種img檔案的作用以及系統啟動過程

編譯環境:ubuntu 10.04(或者更高)(windows平臺目前不被支援) 本文以編譯android2.3為例,64位作業系統 1、編譯環境的準備  (1)確保安裝有ubuntu系統或者虛擬機器 (2)安裝JDK1.6(對於Android2.3以上程式碼) $ sud

android 開啟各種檔案 intent.setDataAndType

 Java程式碼 /**   * 開啟檔案   * @param file   */   private void openFile(File file){   Intent intent = new Intent();   intent.addFlags(I

AD各種布線方法總結

conn pcb tab pda 就是 間距 命名 ace 差分對 1.常規布線:不詳細說了,是個人就知道怎麽弄。需要說明的是在布線過程中,可按小鍵盤的*鍵或大鍵盤的數字2鍵添加一個過孔;按L鍵可以切換布線層;按數字3可設定最小線寬、典型線寬、最大線寬的值進行切換。2. 總

python讀寫csv檔案方法總結

python提供了大量的庫,可以非常方便的進行各種操作,現在把python中實現讀寫csv檔案的方法使用程式的方式呈現出來。 1、使用csv讀寫csv檔案方法總結 reader()函式是一個閱讀器把閱讀的CSV檔案每一行以一個列表表示出來以至於你可以用for迴圈來遍歷他 讀檔案的時候,開啟檔

Qt 標準對話方塊messagbox各種型別使用方法記錄

QMessageBox::information: QMessageBox::information(NULL, "Title", "Content", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes); 下面是一個簡單的

JS判斷變數型別方法總結

typeof操作符 用於檢測基本資料型別,返回值可能為: “number” “boolean” “string” “undefined” “object” “function”. 注意:typeof null返回”obje

Android 自定義型別檔案與程式關聯

0x01 功能  實現在其他應用中開啟某個字尾名的檔案 可以直接跳轉到本應用中的某個activity進行處理   0x01 實現    首先建立一個activity ,然後在manifest裡對該activity項編輯,加入    <intent-

java中對於Date時間的各種用法和方法總結

在java中經常會用到和時間日期有關的各種操作,今天就對於Date的幾中常用的用法做一個總結: -Date類 : 1.表示日期的類 2.提供了很多的操作日期的方法,但是很多方法被java標記為過時 public class TestDateAPIClass { @Test

java讀取classpath下檔案方法總結

專案中一般都會遇到需要讀取classpath下檔案的問題,今天我打算把我知道的方式都整理一下,做一個記錄方便以後查詢,以下就是具體的方式: // classpath目錄下 URL resource = TestASM.class.getResource("

android 開啟一個任意檔案,從環信中抽取出來的

android 開啟一個任意檔案,從環信中抽取出來的 1.使用方法 File file = new File(Environment.getExternalStorageDirectory(), "/4873641464161346955.jpg");

Android手機各種截圖方法

/** * 螢幕相關的輔助類 * * @since 2015-05-27 * @author lixi */ public class ScreenUtils { private ScreenUtils() { throw new UnsupportedOper

String型別/Date型別常用方法總結

String型別 兩個用於訪問字串中特定字元的方法時: charAt()和charCodeAt() 字串操作方法 concat(): 用於將一或多個字串拼接起來,接受任意多個引數。

R語言:64位作業系統讀取excel檔案方法總結

首先嚐試的是RODBC,不過過程相當不順利 我電腦上安裝的是office 2003,ODBC資料來源裡面找不到excel的驅動程式 原因是office是32為版本,安裝的驅動程式無法在64位的win7上使用。 執行c:\windows\sysWOW64\odbc

Android中引用資源的方法總結

一[email protected]代表引用資源 1.引用自定義資源。格式:@[package:]type/name Android:text="@string/hello" 2.引用系統資源。格式:@android:type/name     android:textColor="@andro

Android繪製圓形圖片的方法總結

  在需求開發中經常會遇到需要顯示圓形圖片的情況,比如我們經常見到的使用者圓形頭像。為了實現這個效果,我們需要重新定義View,通過重寫onDraw方法來使得我們的View顯示成圓形。要是實現這個功能主要有三種方法。 使用Xfermode 相交模式   什麼