Android打开各种类型的文件方法总结
来源:互联网 发布:vb mid 函数怎么用 编辑:程序博客网 时间:2024/05/16 11:05
原文转自:http://blog.csdn.net/eclipsexys/article/details/39552501,感谢作者分享!
很简单,通过调用系统的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;
- }
0 0
- Android打开各种类型的文件方法总结
- Android打开各种类型的文件方法总结
- Android打开各种类型的文件方法总结
- Android打开各种类型的文件方法总结
- Android打开各种类型的文件方法总结
- Android打开各种类型的文件方法总结
- Android打开各种类型的文件方法总结
- Android打开各种类型的文件方法总结
- Android总结打开各种类型的文件方法
- Android打开各种类型的文件方法总结
- Android打开各种类型的文件方法总结
- (转载一些资料) Android打开各种类型的文件方法总结..........
- Android下打开各种类型文件的方法
- android中打开各种文件的方法
- android 打开各种文件的方法
- android intent打开各种文件的方法
- android intent打开各种文件的方法
- android intent打开各种文件的方法
- java多线程小例子:模拟两个窗口售票
- SQL Server中的存储过程sp_makewebtask中的参数
- Android json 数据解析
- 努力到感动自己
- 吸附塔护肤u非体育图鉴发图图发图发图元话费头一回天赋和体育局
- Android打开各种类型的文件方法总结
- 北美数据仓库的常用技术
- 大人国色热饮热天也个人代言人是通过色如果有如果有让他也认同与
- Tomcat内存溢出的三种情况及解决办法分析
- C# 实现窗口"绑架"
- Git Submodule 的認識與正確使用!
- 中的人更多市人大的人挺好的让他和热天和让他和人一人一个工人房
- apache-php-mongo开发环境的搭建
- maven install时碰到的两个问题(堆溢出和编译错误)