天天看点

Android--用intent打开各种文件

Android--用intent打开各种文件

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) {  

        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");  

        }  

    //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.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.setdataandtype(uri, "application/msword");  

    //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");  

}  

转载:http://blog.csdn.net/chaoyu168/article/details/50778016

继续阅读