Android调用系统应用打开任意文件

来源:互联网 发布:电气控制设计软件下载 编辑:程序博客网 时间:2024/05/29 15:33
public class OpenFiles {    //android获取一个用于打开HTML文件的intent    public static Intent getHtmlFileIntent(File file)    {        Uri uri = Uri.parse(file.toString()).buildUpon().encodedAuthority("com.android.htmlfileprovider").scheme("content").encodedPath(file.toString()).build();        Intent intent = new Intent("android.intent.action.VIEW");        intent.setDataAndType(uri, "text/html");        return intent;    }    //android获取一个用于打开图片文件的intent    public static Intent getImageFileIntent(File file)    {        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(file);        intent.setDataAndType(uri, "image/*");        return intent;    }    //android获取一个用于打开PDF文件的intent    public static Intent getPdfFileIntent(File file)    {        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(file);        intent.setDataAndType(uri, "application/pdf");        return intent;    }    //android获取一个用于打开文本文件的intent    public static Intent getTextFileIntent(File file)    {        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(file);        intent.setDataAndType(uri, "text/plain");        return intent;    }    //android获取一个用于打开音频文件的intent    public static Intent getAudioFileIntent(File file)    {        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(file);        intent.setDataAndType(uri, "audio/*");        return intent;    }    //android获取一个用于打开视频文件的intent    public static Intent getVideoFileIntent(File file)    {        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(file);        intent.setDataAndType(uri, "video/*");        return intent;    }    //android获取一个用于打开CHM文件的intent    public static Intent getChmFileIntent(File file)    {        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(file);        intent.setDataAndType(uri, "application/x-chm");        return intent;    }    //android获取一个用于打开Word文件的intent    public static Intent getWordFileIntent(File file)    {        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(file);        intent.setDataAndType(uri, "application/msword");        return intent;    }    //android获取一个用于打开Excel文件的intent    public static Intent getExcelFileIntent(File file)    {        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(file);        intent.setDataAndType(uri, "application/vnd.ms-excel");        return intent;    }    //android获取一个用于打开PPT文件的intent    public static Intent getPPTFileIntent(File file)    {        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(file);        intent.setDataAndType(uri, "application/vnd.ms-powerpoint");        return intent;    }    //android获取一个用于打开apk文件的intent    public static Intent getApkFileIntent(File file)    {        Intent intent = new Intent();        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);        intent.setAction(android.content.Intent.ACTION_VIEW);        intent.setDataAndType(Uri.fromFile(file),  "application/vnd.android.package-archive");        return intent;    }    public static boolean checkEndsWithInStringArray(String checkItsEnd,                                               String[] fileEndings){        for(String aEnd : fileEndings){            if(checkItsEnd.endsWith(aEnd))                return true;        }        return false;    }    public static void openFile(File currentPath){        if(currentPath!=null&¤tPath.isFile()){            String fileName = currentPath.toString();            Intent intent;            if(checkEndsWithInStringArray(fileName, BaseApp.getContext().getResources().                    getStringArray(R.array.imageFile))){                intent = OpenFiles.getImageFileIntent(currentPath);                BaseApp.getContext().startActivity(intent);            }else if(checkEndsWithInStringArray(fileName,BaseApp.getContext().getResources().                    getStringArray(R.array.htmlFile))){                intent = OpenFiles.getHtmlFileIntent(currentPath);               BaseApp.getContext().startActivity(intent);            }else if(checkEndsWithInStringArray(fileName,BaseApp.getContext().getResources().                    getStringArray(R.array.packageFile))){                intent = OpenFiles.getApkFileIntent(currentPath);               BaseApp.getContext().startActivity(intent);            }else if(checkEndsWithInStringArray(fileName,BaseApp.getContext().getResources().                    getStringArray(R.array.audioFile))){                intent = OpenFiles.getAudioFileIntent(currentPath);               BaseApp.getContext().startActivity(intent);            }else if(checkEndsWithInStringArray(fileName,BaseApp.getContext().getResources().                    getStringArray(R.array.videoFile))){                intent = OpenFiles.getVideoFileIntent(currentPath);               BaseApp.getContext().startActivity(intent);            }else if(checkEndsWithInStringArray(fileName,BaseApp.getContext().getResources().                    getStringArray(R.array.textFile))){                intent = OpenFiles.getTextFileIntent(currentPath);               BaseApp.getContext().startActivity(intent);            }else if(checkEndsWithInStringArray(fileName,BaseApp.getContext().getResources().                    getStringArray(R.array.pdfFile))){                intent = OpenFiles.getPdfFileIntent(currentPath);               BaseApp.getContext().startActivity(intent);            }else if(checkEndsWithInStringArray(fileName,BaseApp.getContext().getResources().                    getStringArray(R.array.wordFile))){                intent = OpenFiles.getWordFileIntent(currentPath);               BaseApp.getContext().startActivity(intent);            }else if(checkEndsWithInStringArray(fileName,BaseApp.getContext().getResources().                    getStringArray(R.array.excelFile))){                intent = OpenFiles.getExcelFileIntent(currentPath);               BaseApp.getContext().startActivity(intent);            }else if(checkEndsWithInStringArray(fileName,BaseApp.getContext().getResources().                    getStringArray(R.array.pptFile))){                intent = OpenFiles.getPPTFileIntent(currentPath);               BaseApp.getContext().startActivity(intent);            }else            {                TSLog.e("无法打开,请安装相应的软件!");            }        }else{            TSLog.e("对不起,这不是文件!");        }    }}

原创粉丝点击