`

Android 文件打开方式

 
阅读更多

转载:http://blog.csdn.net/weich_java/article/details/7002829

 

 

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;   
	}

 

分享到:
评论

相关推荐

    android 打开各种文档的demo

    在Android平台上,开发人员经常需要处理用户打开不同类型文档的需求,如Word、Excel、PowerPoint、PDF等。这个“android 打开各种文档的demo”提供了一个实用的示例,展示了如何在Android应用中实现这一功能。下面将...

    Android添加文件打开方式

    在Android系统中,添加文件打开方式是开发者常需面对的一项任务。这涉及到应用程序的Intent过滤器,使得当用户点击特定类型的文件时,你的应用能够作为选择之一来打开它。这篇博客详细介绍了如何在Android项目中实现...

    Android7.0 Intent打开文件管理器 获取文件真实路径

    Android7.0 Intent打开文件管理器 获取文件真实路径。虽然网上很多demo,但是没有一个能够兼容所有Android机的,去网上学习了然后自己亲测过手机分别有Android7.0/6.0/4.3个版本。

    android用于打开各种文件的intent

    标题与描述中的关键词“android用于打开各种文件的intent”揭示了本文将探讨的主题:在Android平台上,如何使用Intent机制来启动应用程序以打开不同类型的文件。Intent是Android四大组件之一,它提供了一种方式来...

    一个打开文件目录操作的android程序

    综上所述,开发一个在Android上打开文件目录的操作程序涉及到的知识点包括:Android文件系统、`java.io.File`操作、`ListView`与`ArrayAdapter`、`Dialog`组件、权限管理、事件监听以及API兼容性处理。通过理解和...

    android 文件打开辅助类

    本篇文章将深入探讨“android 文件打开辅助类”,它是一个便捷的工具,用于简化在Android平台上打开各种类型的文件,如视频、音频、图片、Word文档以及PowerPoint演示文稿等。 首先,我们来理解一下Android中的文件...

    Android-android7.0访问文件打开相机功能

    在`fileProviderDemo-master`这个项目中,你可以找到一个完整的示例,展示如何在Android 7.0上使用`FileProvider`来访问文件并打开相机。通过查看源代码,你可以更好地理解上述步骤的实现细节,同时也可以作为你的...

    android打开各种文件

    在处理文件打开时,我们通常使用隐式Intent,因为这种Intent不直接指定接收者,而是通过指定动作(ACTION_VIEW)和数据URI(file://或content://)来让系统寻找能够处理该Intent的应用程序。 以下是创建一个隐式...

    android 指定打开(存储)文件(夹)

    在Android平台上,开发一款能指定打开或存储文件和文件夹的应用是相当常见的需求。这个程序设计的核心在于提供一个用户友好的界面,允许用户选择特定的文件或目录,并且能够被其他应用程序调用,以实现文件操作功能...

    android打开手机文件

    在Android平台上,打开手机文件是一项常见的任务,尤其在开发应用程序时。这个场景通常是用户需要浏览、选择或操作存储在设备上的文件。以下是一些关于如何在Android应用中实现这一功能的关键知识点: 1. **Intent...

    利用Android原生API打开文件demo

    在Android开发中,有时我们需要实现一个功能,让用户能够选择设备上的任意文件并进行操作,比如打开、编辑或发送。这个过程通常涉及到文件选择器的实现。在这个“利用Android原生API打开文件demo”中,我们将深入...

    Android打开各种格式文件

    实现文件打开功能,通常需要一个文件选择器,如`Intent.createChooser()`。它可以启动系统的文件选择对话框,让用户从本地存储或云存储中选取文件。另外,还可以使用第三方文件选择库,如`Android-FilePicker`。 9...

    Android中调用系统所装的软件打开文件

    总结起来,这段代码展示了如何在Android应用中实现调用系统中已安装的软件打开特定文件的功能。开发者首先创建一个Intent,设置相应的标志和Action,获取文件的MIME类型,并将文件URI和MIME类型附加到Intent中。最后...

    android 调用WPS 打开文件

    android 系统调用WPS打开word excel ppt pdf 等,将代码类移入的你项目,有对6.0 7.0及以上系统做文件读取方法

    Android文件上传,文件选择器,多选

    `DocumentFile`允许你遍历文件系统并进行读写操作,而SAF是Android提供的用于访问存储的框架,它提供了安全且统一的方式来访问用户存储的数据。 2. 多选与单选:在文件选择器中,多选功能可以通过设置复选框或者...

    android打开网络pdf文件

    在Android平台上,打开网络PDF文件是一项常见的需求,无论是阅读电子书、查看文档还是处理工作,PDF格式因其良好的兼容性和稳定性而被广泛使用。本篇将详细介绍如何实现这一功能,包括PDF文件的下载以及在Android...

    安卓/android 打开 excel文件源代码

    本篇文章将详细介绍如何在Android应用中实现打开Excel(xls和xlsx)文件的功能。 首先,我们需要了解Android对Office文件的支持情况。Android本身并不直接支持读取或写入Excel文件,因此我们需要借助第三方库或者...

    Android扫描本地pdf文件和从网络下载pdf文件并打开

    在Android平台上,开发人员经常需要处理文件操作,特别是与PDF(Portable Document Format)相关的任务,如扫描本地PDF文件、从网络下载PDF文件以及打开这些文件供用户查看。本篇文章将详细探讨如何在Android应用中...

    android中打开office文件

    Android系统本身并不支持直接打开和编辑Microsoft Office格式的文件,但可以通过第三方应用接口来实现。这里提到的“WPS Pro专业版”是一款由金山软件开发的办公应用,它提供了良好的Office文件兼容性,并且具备较高...

    android用于打开各种文件的intent.pdf

    Android 中使用 Intent 打开各种文件类型 Android 操作系统提供了 Intent 机制,允许应用程序之间进行交互和通信。Intent 是一个异步的消息机制,用于在应用程序之间请求或提供服务。通过使用 Intent,可以实现打开...

Global site tag (gtag.js) - Google Analytics