通过Intent打开系统文件选择器
// action类型:获取本地文件
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
// 设置想要选择的文件类型,MIME数据类型
intent.setType("text/plain");
// 过滤出系统认为可打开的文件
intent.addCategory(Intent.CATEGORY_OPENABLE);
startActivityForResult(intent, REQUEST_CODE);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (REQUEST_CODE == requestCode && resultCode == Activity.RESULT_OK) {
// 得到uri,后面就是将uri转化成file的过程
Uri uri = data.getData();
// 获取文件的绝对路径
String path = FileProvider.getFileAbsolutePath(this,uri);
}
}
MIME数据类型:多功能Internet 邮件扩充服务(Multipurpose Internet Mail Extensions),用于表明某文件属于什么类型的一种约定。
对应关系如下: