介绍
本篇用于介绍Android中如何打开各种类型的文件,如:音乐文件(mp3、wav、ogg等)、视频文件(3gp、mp4等)、图片文件(jpg、png、gif等)、安装包(apk)、文档(txt、doc、ppt、pdf、xls等),已经封装成工具类OpenFileUtils,末尾有源码地址。
注意
打开音乐、视频、图片、文档等文件是需要有读取SD卡的权限的,如果是6.0以下的系统,则直接在清单文件中声明SD卡读取权限即可;如果是6.0或以上,则需要动态申请权限。
为了兼容Android7.0,获取文件Uri需要使用到FileProvider,由于本篇只是介绍如何打开文件,就不再介绍如何使用FileProvider,不清楚的同学可以查看我写过的一篇关于Android7.0适配的博客,里面有介绍到该内容,博客地址:
OpenFileUtils封装好的获取文件Uri的方法getUri()的代码为:/**
* 获取对应文件的Uri
* @param intent 相应的Intent
* @param file 文件对象
* @return
*/private static Uri getUri(Intent intent, File file) {
Uri uri = null; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { //判断版本是否在7.0以上
uri =
FileProvider.getUriForFile(mContext,
mContext.getPackageName() + ".fileprovider",
file); //添加这一句表示对目标应用临时授权该Uri所代表的文件
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
} else {
uri = Uri.fromFile(file);
} return uri;
}
OpenFileUtils的使用
OpenFileUtils是封装好的用于打开本机各类文件的工具类,使用方式为:OpenFileUtils.getInstance(Context context).openFile(String filePath)。
各种文件的类型的DataType
DataType用于指定Intent中的数据类型,不同类型的文件有不同的Data