因为本人项目中用到第三方库图片选择器(PictureSelector),在选择器中点击拍照或者拍摄遇到点击事件不响应,遇到FileUriExposedException异常,在百度搜索好久都没有详细的解决资料,我在这里将解决办法告诉大家,希望能帮助到你们!
一、 FileUriExposedException 的原因
Android7.0及以上不识别uri以file://开头,要将其转换为content://才能识别uri
二、解决办法
1.在清单文件中加<provider/>
${applicationId}:项目包名
2.在res目录下创建xml文件夹,创建file_paths.xml
3.仔细查看PictureSelector的源码,我是找到PictureSelectorActivity,在该activity中找到拍摄或者拍照的响应事件,修改响应事件时用到的路径(需要仔细找,多打断点),将file://改为conent://
注意、注意、注意,重要的事情说三遍:FileProvider.getUriForFile()方法的第二个参数名称一定要与清单文件中的(android:authorities="${applicationId}.fileProvider") 与${applicationId}.fileProvider一摸一样
参考:https://blog.youkuaiyun.com/trq2012/article/details/80568094
有什么不清楚的可以留言!希望能够帮助到大家!