最近又更新了一下Android studio的gradle版本
结果。。。
与存储相关的无一幸免,Android6.0引入的动态权限控制(Runtime Permissions),Android7.0又引入“私有目录被限制访问”,“StrictMode API 政策”。“私有目录被限制访问“ 是指在Android7.0中为了提高私有文件的安全性,面向 Android N 或更高版本的应用私有目录将被限制访问。这点类似iOS的沙盒机制。
” StrictMode API 政策” 是指禁止向你的应用外公开 file:// URI。 如果一项包含文件 file:// URI类型 的 Intent 离开你的应用,应用失败,并出现 FileUriExposedException 异常。
比如我在应用内跟新app下载后跳转不到安装页面,比如我的扫码打开相机以及相机拍照上传头像等
解决方法如下:
使用FileProvider
使用FileProvider的大致步骤如下:
第一步:
在AndroidManifest.xml清单文件中注册provider,因为provider也是Android四大组件之一,可以简单把它理解为向外提供数据的组件,这种组件在实际开发中用的频率并不高,四大组件都可以在清单文件中进行配置:
<application
...>
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="自己包名.fileprovider"
android:gr