记一次文件上传引发的血案。
解决QQ浏览器com.tencent.mtt.fileprovider问题。
更新列表
日期
修改内容
2019年7月2日
更新遇到的问题
前情描述:
使用系统文件管理器,选择指定文件类型上传。
基础知识
MIME
调起文件管理器
指定浏览位置(路径转URI)
设置多种文件类型
URI转路径
踩坑
com.tencent.mtt.fileprovider 问题
1. MIME
MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的因特网标准。
final String DOC = "application/msword";
final String XLS = "application/vnd.ms-excel";
final String PPT = "application/vnd.ms-powerpoint";
final String DOCX = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
final String XLSX = "application/x-excel";
final String XLSX = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
final String PPTX = "application/vnd.openxmlformats-officedocument.presentationml.presentation";
final String PDF = "application/pdf";
final String MP4 = "video/mp4";
final String M3U8 = "application/x-mpegURL";
更多文件类型,自行百度
2. 调起文件管理器
所有类型文件
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
//任意类型文件
intent.setType("*/*");
intent.addCategory(Intent.CATEGORY_OPENABLE);
startActivityForResult(intent,1);
//-------常用类型
//图片
//intent.setType(“image/*”);
//音频
//intent.setType(“audio/*”);
//视频
//intent.setType(“video/*”);
//intent.setType(“video/*;image/*”);
系统的相冊
Intent intent= new Intent(Intent.ACTION_PICK, null);
intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");
startActivityForResult(intent, REQUEST_CODE_FILE);
3. 指定浏览位置(路径转URI)
跳转到指定路径下,涉及到将路径转为URI,考虑Android版本区别
/**
* file --> uri
* @param c