天天看點

android用于打開各種檔案的intent

 java代碼

import android.app.activity;  

import android.content.intent;  

import android.net.uri;  

import android.net.uri.builder;  

import java.io.file;  

//自定義android intent類,  

//可用于擷取打開以下檔案的intent  

//pdf,ppt,word,excel,chm,html,text,audio,video  

示例:  

//這個不行,可能是因為pdf.apk程式沒有權限通路其它apk裡的asset資源檔案,又或者是路徑寫錯?  

//intent it = getpdffileintent("file:///android_asset/helphelp.pdf");  

//下面這些都ok  

//intent it = gethtmlfileintent("/mnt/sdcard/tutorial.html");//sd卡主目錄  

//intent it = gethtmlfileintent("/sdcard/tutorial.html");//sd卡主目錄,這樣也可以  

intent it = gethtmlfileintent("/system/etc/tutorial.html");//系統内部的etc目錄  

//intent it = getpdffileintent("/system/etc/helphelp.pdf");  

//intent it = getwordfileintent("/system/etc/help.doc");  

//intent it = getexcelfileintent("/mnt/sdcard/book1.xls")  

//intent it = getpptfileintent("/mnt/sdcard/download/android_ppt.ppt");//sd卡的download目錄下  

//intent it = getvideofileintent("/mnt/sdcard/ice.avi");  

//intent it = getaudiofileintent("/mnt/sdcard/ren.mp3");  

//intent it = getimagefileintent("/mnt/sdcard/images/001041580.jpg");  

//intent it = gettextfileintent("/mnt/sdcard/hello.txt",false);  

startactivity( it );  

public class myintent  

{  

 //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.addcategory("android.intent.category.default");  

    intent.addflags(intent.flag_activity_new_task);  

    uri uri = uri.fromfile(new file(param ));  

    intent.setdataandtype(uri, "image/*");  

  //android擷取一個用于打開pdf檔案的intent  

  public static intent getpdffileintent( string param )  

    intent.setdataandtype(uri, "application/pdf");  

 //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擷取一個用于打開音頻檔案的intent  

  public static intent getaudiofileintent( string param )  

    intent.addflags(intent.flag_activity_clear_top);  

  intent.putextra("oneshot", 0);  

    intent.putextra("configchange", 0);  

    intent.setdataandtype(uri, "audio/*");  

  //android擷取一個用于打開視訊檔案的intent  

  public static intent getvideofileintent( string param )  

     intent intent = new intent("android.intent.action.view");  

    intent.putextra("oneshot", 0);  

    intent.setdataandtype(uri, "video/*");  

  //android擷取一個用于打開chm檔案的intent  

  public static intent getchmfileintent( string param )  

  {   

    intent.setdataandtype(uri, "application/x-chm");  

 //android擷取一個用于打開word檔案的intent  

   public static intent getwordfileintent( string param )  

     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擷取一個用于打開excel檔案的intent  

   public static intent getexcelfileintent( string param )  

   {  

     intent.setdataandtype(uri, "application/vnd.ms-excel");  

 //android擷取一個用于打開ppt檔案的intent  

   public static intent getpptfileintent( string param )  

     intent.setdataandtype(uri, "application/vnd.ms-powerpoint");  

繼續閱讀