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 相交模式 什麼