android 打开文本

一、OpenFiles类


 

package com.caojing.about;

import java.io.File;

import android.content.Intent;
import android.net.Uri;

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

}


二、OpenFileHelper类

package com.caojing.about;

import java.io.File;

import com.caojing.mysharedemo.R;

import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.widget.Toast;



public class OpenFileHelper{
	private Context context;
	
	public OpenFileHelper(Context context) {
		this.context = context;
	}
	
	public  void openFile(File currentPath){
		Log.d("OpenFileHelper",currentPath.toString());
		if (currentPath != null && currentPath.isFile()) {
			String fileName = currentPath.toString();
			Intent intent;
			try{
				if (checkEndsWithInStringArray(fileName, context.getResources()
						.getStringArray(R.array.fileEndingImage))) {
					intent = OpenFiles.getImageFileIntent(currentPath);
					context.startActivity(intent);
				} else if (checkEndsWithInStringArray(fileName, context.getResources()
						.getStringArray(R.array.fileEndingWebText))) {
					intent = OpenFiles.getHtmlFileIntent(currentPath);
					context.startActivity(intent);
				} else if (checkEndsWithInStringArray(fileName, context.getResources()
						.getStringArray(R.array.fileEndingPackage))) {
					intent = OpenFiles.getApkFileIntent(currentPath);
					context.startActivity(intent);
				} else if (checkEndsWithInStringArray(fileName, context.getResources()
						.getStringArray(R.array.fileEndingAudio))) {
					intent = OpenFiles.getAudioFileIntent(currentPath);
					context.startActivity(intent);
				} else if (checkEndsWithInStringArray(fileName, context.getResources()
						.getStringArray(R.array.fileEndingVideo))) {
					intent = OpenFiles.getVideoFileIntent(currentPath);
					context.startActivity(intent);
				} else if (checkEndsWithInStringArray(fileName, context.getResources()
						.getStringArray(R.array.fileEndingText))) {
					intent = OpenFiles.getTextFileIntent(currentPath);
					context.startActivity(intent);
				} else if (checkEndsWithInStringArray(fileName, context.getResources()
						.getStringArray(R.array.fileEndingPdf))) {
					intent = OpenFiles.getPdfFileIntent(currentPath);
					context.startActivity(intent);
				} else if (checkEndsWithInStringArray(fileName, context.getResources()
						.getStringArray(R.array.fileEndingWord))) {
					intent = OpenFiles.getWordFileIntent(currentPath);
					context.startActivity(intent);
				} else if (checkEndsWithInStringArray(fileName, context.getResources()
						.getStringArray(R.array.fileEndingExcel))) {
					intent = OpenFiles.getExcelFileIntent(currentPath);
					context.startActivity(intent);
				} else if (checkEndsWithInStringArray(fileName, context.getResources()
						.getStringArray(R.array.fileEndingPPT))) {
					intent = OpenFiles.getPPTFileIntent(currentPath);
					context.startActivity(intent);
				} else {
					showMessage("无法打开,请安装相应的软件!");
				}
			}catch(ActivityNotFoundException e){
				showMessage("无法打开,请安装相应的软件!");
			}
		} else {
			showMessage("对不起,这不是文件!");
		}
	}
	
	private void showMessage(String msg){
		Toast.makeText(context, msg, Toast.LENGTH_LONG).show();
	}

	//检查文件类型是否在fileEndings.xml列表中
	private boolean checkEndsWithInStringArray(String checkItsEnd,
			String[] fileEndings) {
		for (String aEnd : fileEndings) {
			if (checkItsEnd.endsWith(aEnd))
				return true;
		}
		return false;
	}
}

三、arrays.xml文件


 

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <array name="country_codes">
        <item>-</item>
        <item>AR</item>
        <item>AU</item>
        <item>BR</item>
        <item>BG</item>
        <item>CA</item>
        <item>CN</item>
        <item>CZ</item>
        <item>DE</item>
        <item>DK</item>
        <item>ES</item>
        <item>FI</item>
        <item>FR</item>
        <item>GB</item>
        <item>GR</item>
        <item>HU</item>
        <item>ID</item>
        <item>IT</item>
        <item>JP</item>
        <item>KR</item>
        <item>NL</item>
        <item>PL</item>
        <item>PT</item>
        <item>RU</item>
        <item>SE</item>
        <item>SK</item>
        <item>SI</item>
        <item>TR</item>
        <item>TW</item>
        <item>US</item>
    </array>

    <string-array name="array_checkbox">
        <item>草约</item>
        <item>确认</item>
        <item>执行生效</item>
        <item>发货完成</item>
        <item>结算完成</item>
        <item>合同完成</item>
    </string-array>
    <string-array name="array_checkbox_fzjdh">
        <item>合同录入</item>
        <item>合同审核</item>
        <item>合同生效</item>
        <item>合同生产</item>
        <item>合同准发完成</item>
        <item>合同发货完毕</item>
        <item>合同结算完成</item>
        <item>合同变更</item>
        <item>合同完成</item>
    </string-array>
    <string-array name="bankroll_array_checkbox">
        <item>草约</item>
        <item>合同新增</item>
        <item>合同已收款</item>
        <item>合同生效</item>
        <item>发货完成</item>
        <item>结算完成</item>
    </string-array>

    <array name="fileEndingImage">
        <item>.png</item>
        <item>.gif</item>
        <item>.jpg</item>
        <item>.jpeg</item>
        <item>.bmp</item>
        <item>.tif</item>
        <item>.tiff</item>
    </array>
    <array name="fileEndingAudio">
        <item>.mp3</item>
        <item>.wav</item>
        <item>.ogg</item>
        <item>.midi</item>
    </array>
    <array name="fileEndingVideo">
        <item>.mp4</item>
        <item>.rmvb</item>
        <item>.avi</item>
        <item>.flv</item>
    </array>
    <array name="fileEndingPackage">
        <item>.jar</item>
        <item>.zip</item>
        <item>.rar</item>
        <item>.gz</item>
        <item>.apk</item>
        <item>.img</item>
    </array>
    <array name="fileEndingWebText">
        <item>.htm</item>
        <item>.html</item>
        <item>.php</item>
        <item>.jsp</item>
    </array>
    <array name="fileEndingText">
        <item>.txt</item>
        <item>.java</item>
        <item>.c</item>
        <item>.cpp</item>
        <item>.py</item>
        <item>.xml</item>
        <item>.json</item>
        <item>.log</item>
    </array>
    <array name="fileEndingWord">
        <item>.doc</item>
        <item>.docx</item>
    </array>
    <array name="fileEndingExcel">
        <item>.xls</item>
        <item>.xlsx</item>
    </array>
    <array name="fileEndingPPT">
        <item>.ppt</item>
        <item>.pptx</item>
    </array>
    <array name="fileEndingPdf">
        <item>.pdf</item>
    </array>
    <array name="gbfwType">
        <item>产品</item>
        <item>物流</item>
        <item>财务</item>
        <item>系统</item>
        <item>其他</item>
        <item>异议</item>
    </array>
    <array name="gbfwStatus">
        <item>待处理</item>
        <item>处理中</item>
        <item>完成</item>
    </array>
   <array name="region">
        <item>总部</item>
        <item>东北区域</item>
        <item>华北区域</item>
        <item>华东地区</item>
         <item>华中区域</item>
        <item>西部区域</item>
         <item>南方区域</item>
        <item>专营公司</item>
    </array>

</resources>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值