Android Intent打开任意文件的通用方式
来源:互联网 发布:成都网络外包公司 编辑:程序博客网 时间:2024/04/30 06:51
- 如我所知:关于使用Intent打开各自类型的文件,网上已经有了大把的资料可以查阅。但是比较不幸的是:目前为止,我没有看到一个完整的,独立的,可以直接拿来就用的工具类。于是,结合之前查阅的资料,我对这些做了一个小小的整合,形成了下面的这个打开文件的工具类。
- 代码很少,注释也比较清晰,也没有什么需要理解的地方,就直接上代码了。
`
import java.io.File;import android.content.Context;import android.content.Intent;import android.net.Uri;import android.support.v4.app.Fragment;import android.webkit.MimeTypeMap;import android.widget.Toast;public class OpenFileUtils { private OpenFileUtils() { } public static void openFile(File file, Context context) { try { Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // 设置intent的Action属性 intent.setAction(Intent.ACTION_VIEW); // 获取文件file的MIME类型 String fileExtensionFromUrl = MimeTypeMap .getFileExtensionFromUrl(Uri.fromFile(file).toString()); String mimeTypeFromExtension = MimeTypeMap.getSingleton() .getMimeTypeFromExtension(fileExtensionFromUrl); // 设置intent的data和Type属性。 intent.setDataAndType(/* uri */Uri.fromFile(file), mimeTypeFromExtension); // 跳转 context.startActivity(intent); // 这里最好try一下,有可能会报错。 // //比如说你的MIME类型是打开邮箱,但是你手机里面没装邮箱客户端,就会报错。 } catch (Exception e) { vtoast("没有对应的应用", context); e.printStackTrace(); } } public static void openFile(File file, Fragment context) { try { Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // 设置intent的Action属性 intent.setAction(Intent.ACTION_VIEW); // 获取文件file的MIME类型 String fileExtensionFromUrl = MimeTypeMap .getFileExtensionFromUrl(Uri.fromFile(file).toString()); String mimeTypeFromExtension = MimeTypeMap.getSingleton() .getMimeTypeFromExtension(fileExtensionFromUrl); // 设置intent的data和Type属性。 intent.setDataAndType(/* uri */Uri.fromFile(file), mimeTypeFromExtension); // 跳转 context.startActivity(intent); // 这里最好try一下,有可能会报错。 // //比如说你的MIME类型是打开邮箱,但是你手机里面没装邮箱客户端,就会报错。 } catch (Exception e) { if (context.isAdded()) vtoast("没有对应的应用", context.getActivity()); e.printStackTrace(); } } private static void vtoast(final String text, final Context context) { if ("main".equals(Thread.currentThread().getName())) { Toast.makeText(context, text, Toast.LENGTH_SHORT).show(); } else { System.out.println("subThread can't update UI"); } }}
`
有任何疑问,请在浏览器地址栏输入: http://www.baidu.com ~.
0 0
- Android Intent打开任意文件的通用方式
- android 使用intent 打开各种文件方式
- Android 文件打开的intent
- android 应用组件[通用 Intent---打开特定类型的文件] 十二
- android用于打开各种文件的intent
- android用于打开各种文件的intent
- android用于打开各种文件的intent
- Android用于打开各种文件的intent
- 【Android】用于打开各种文件的intent
- android用于打开各种文件的intent
- android用于打开各种文件的intent
- android用于打开各种文件的intent
- android用于打开各种文件的intent
- android用于打开各种文件的intent
- android用于打开各种文件的intent
- Android打开文件的Intent及使用
- android用于打开各种文件的intent
- android用于打开各种文件的intent
- socket 的select函数例子
- 轻松搞定面试中的链表题目
- IAR程序中获取堆指针与栈指针
- iOS开发:判断当前的viewController的上一个页面是哪个页面
- 待人友善是教养 独来独往是性格
- Android Intent打开任意文件的通用方式
- 2567:寻梦
- cocos2d-js cc.DrawNode用法示例
- 设计模式之职责链模式(Chain Of Responsibility)
- springmvc二级缓存,查询缓存
- .net中RAR压缩文件的方法
- Android学习——PopupWindow
- gradle项目构建
- poj1338(啊这题我要死了)