Android7.0后文件访问的方式

android7.0后文件访问悄悄的改变形式,不能再以file://....的方式访问,而是以共享的方式content://....。

兼容的方式有两种

1、是在Application的onCreate方法里加入以下代码。

if(Build.VERSION.SDK_INT>= Build.VERSION_CODES.N) {

StrictMode.VmPolicy.Builder builder =newStrictMode.VmPolicy.Builder();

StrictMode.setVmPolicy(builder.build());

builder.detectFileUriExposure();

}

不过个人觉得这种方式并不是解决问题的长久之计。

2、是谷歌推荐的解决方式。以共享文件的方式

首先在res目录下添加个xm目录并创建文件provider_paths.xml

provider_paths.xml的内容如下:


Android7.0后文件访问的方式_第1张图片


属性都要内容里有说明。

然后在AndroidManifest.xml注册我们组件,内容如下


Android7.0后文件访问的方式_第2张图片


接下来我们就可以直接使用的,没时间整理就先写死后缀了

Uriu = FileProvider.getUriForFile(this,getApplicationContext().getPackageName() +".provider",file);

调用相机和系统自带截图功能的时候一定要记得加上

intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

否则就自己坑自己吧

你可能感兴趣的:(Android7.0后文件访问的方式)