android调用第三方软件打开下载的附件

在做我们产品的时候,需要下载附件, 同时下载附件需要打开, 通过查阅一些资料发现,android对这支持做的非常好,通过anction ,加minitype ,加数据源,就能找到合适的软件进行打开你的下载的附件,下面是我整理的一个的java类,希望对你有帮助!
/* * @project C6Client * @package com.jh.c6.util * @file CallOtherOpeanFile.java * @version  1.0 * @author  liaoyp * @time  2012-5-19 上午6:30:54 * */package com.jh.c6.util;import java.io.File;import android.content.ActivityNotFoundException;import android.content.Context;import android.content.Intent;import android.net.Uri;import android.widget.Toast;public class CallOtherOpeanFile {/** *  * openFile * @description: TODO(打开附件)  * @param context * @param file * @since   2012-5-19    liaoyp */public void openFile(Context context,File file){     try{    Intent intent = new Intent();     intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);     //设置intent的Action属性     intent.setAction(Intent.ACTION_VIEW);     //获取文件file的MIME类型     String type = getMIMEType(file);     //设置intent的data和Type属性。     intent.setDataAndType(/*uri*/Uri.fromFile(file), type);     //跳转     context.startActivity(intent);   //    Intent.createChooser(intent, "请选择对应的软件打开该附件!");    }catch (ActivityNotFoundException e) {// TODO: handle exception    Toast.makeText(context, "sorry附件不能打开,请下载相关软件!", 500).show();}} private String getMIMEType(File file) {          String type="*/*";     String fName = file.getName();     //获取后缀名前的分隔符"."在fName中的位置。     int dotIndex = fName.lastIndexOf(".");     if(dotIndex < 0){         return type;     }     /* 获取文件的后缀名*/     String end=fName.substring(dotIndex,fName.length()).toLowerCase();     if(end=="")return type;     //在MIME和文件类型的匹配表中找到对应的MIME类型。     for(int i=0;i

        if(end.equals(MIME_MapTable[i][0]))             type = MIME_MapTable[i][1];     }            return type; } 

// 可以自己随意添加 private String [][]  MIME_MapTable={             //{后缀名,MIME类型}             {".3gp",    "video/3gpp"},             {".apk",    "application/vnd.android.package-archive"},             {".asf",    "video/x-ms-asf"},             {".avi",    "video/x-msvideo"},             {".bin",    "application/octet-stream"},             {".bmp",    "image/bmp"},             {".c",  "text/plain"},             {".class",  "application/octet-stream"},             {".conf",   "text/plain"},             {".cpp",    "text/plain"},             {".doc",    "application/msword"},             {".docx",   "application/vnd.openxmlformats-officedocument.wordprocessingml.document"},             {".xls",    "application/vnd.ms-excel"},              {".xlsx",   "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"},             {".exe",    "application/octet-stream"},             {".gif",    "image/gif"},             {".gtar",   "application/x-gtar"},             {".gz", "application/x-gzip"},             {".h",  "text/plain"},             {".htm",    "text/html"},             {".html",   "text/html"},             {".jar",    "application/java-archive"},             {".java",   "text/plain"},             {".jpeg",   "image/jpeg"},             {".jpg",    "image/jpeg"},             {".js", "application/x-javascript"},             {".log",    "text/plain"},             {".m3u",    "audio/x-mpegurl"},             {".m4a",    "audio/mp4a-latm"},             {".m4b",    "audio/mp4a-latm"},             {".m4p",    "audio/mp4a-latm"},             {".m4u",    "video/vnd.mpegurl"},             {".m4v",    "video/x-m4v"},              {".mov",    "video/quicktime"},             {".mp2",    "audio/x-mpeg"},             {".mp3",    "audio/x-mpeg"},             {".mp4",    "video/mp4"},             {".mpc",    "application/vnd.mpohun.certificate"},                    {".mpe",    "video/mpeg"},               {".mpeg",   "video/mpeg"},               {".mpg",    "video/mpeg"},               {".mpg4",   "video/mp4"},                {".mpga",   "audio/mpeg"},             {".msg",    "application/vnd.ms-outlook"},             {".ogg",    "audio/ogg"},             {".pdf",    "application/pdf"},             {".png",    "image/png"},             {".pps",    "application/vnd.ms-powerpoint"},             {".ppt",    "application/vnd.ms-powerpoint"},             {".pptx",   "application/vnd.openxmlformats-officedocument.presentationml.presentation"},             {".prop",   "text/plain"},             {".rc", "text/plain"},             {".rmvb",   "audio/x-pn-realaudio"},             {".rtf",    "application/rtf"},             {".sh", "text/plain"},             {".tar",    "application/x-tar"},                {".tgz",    "application/x-compressed"},              {".txt",    "text/plain"},             {".wav",    "audio/x-wav"},             {".wma",    "audio/x-ms-wma"},             {".wmv",    "audio/x-ms-wmv"},             {".wps",    "application/vnd.ms-works"},             {".xml",    "text/plain"},             {".z",  "application/x-compress"},             {".zip",    "application/x-zip-compressed"},             {"",        "*/*"}           }; }

来源:http://blog.csdn.net/liao3841054/article/details/7582982




更多相关文章

  1. WebView 简单使用一
  2. android底部中间凸出导航 BottomProtruding
  3. Android发送邮件
  4. android用于打开各种文件的intent
  5. Android(安卓)Studio新建项目Rendering Problems警告 处理办法
  6. android 实现类似Iphone底部消息数量提示
  7. android webkit 打开debug调试信息
  8. Android(安卓)studio 串口通信(动态获取串口)
  9. Windows上搭建android开发环境

随机推荐

  1. Android的5层平台架构
  2. Android(安卓)Animation
  3. android无framework Java应用开发
  4. Android常用布局
  5. android studio 开发android app 真机调
  6. Android菜单详解(四)——使用上下文菜单Con
  7. Android中MediaMuxer跟MediaCodec用例
  8. android开启线程的误区
  9. 多个 Android(安卓)Drawable shape 组合
  10. Jni/C for android 技术总揽