Android 7.0系统对文件Uri的传递作出了严格的控制,以往咱们都是直接
Uri uri = Uri.fromFile(file);
通过intent的进行隐示跳转,但现在如果在 Android 7.0及以上系统还这样写,就会报出 文件Uri暴露异常,为此, 谷歌建议咱们通过 v4 包里的 FileProvider 来进行Uri跳转传递;
近期项目里要做适配,也遇到这个问题,通过网上查资料,发现除了老老实实按照谷歌推荐的方法来解决外,还有一个更简单的方法,不过这种方法更类似强制关闭谷歌推荐的做法;
第一种(安全方案):
manifest.xml 文件配置
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.fileProvider"
android:exported="false"
android:grantUriPermissions="true"
tools:replace="name,authorities,exported,grantUriPermissions">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"