android7.0打开相册报FileUriExposedException异常

来源:互联网 发布:51单片机指令集 编辑:程序博客网 时间:2024/06/05 22:51

两种处理方式:

一.简单粗暴型.

在application里面配置:

public class MyApplication extends Application {    @Override    public void onCreate() {        super.onCreate();        if (Build.VERSION.SDK_INT >= 18) {            StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();            StrictMode.setVmPolicy(builder.build());            builder.detectFileUriExposure();        }    }}

二.添加provider类型支持.

1.创建文件res/xml/provider_paths.xml

<?xml version="1.0" encoding="utf-8"?><paths xmlns:android="http://schemas.android.com/apk/res/android">    <root-path        name="root_path"        path="." /></paths>

2.在清单文件里面进行配置.

 <provider            android:name="android.support.v4.content.FileProvider"            android:authorities="${applicationId}.fileprovider"            android:exported="false"            android:grantUriPermissions="true">            <meta-data                android:name="android.support.FILE_PROVIDER_PATHS"                android:resource="@xml/provider_paths"/>        </provider>

3.在需要调起相机的地方进行设置.

   Uri uri = FileProvider.getUriForFile(MainActivity.this, getPackageName() + ".fileprovider", file);                    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);                    intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);                    startActivityForResult(intent, 1);
阅读全文
0 0
原创粉丝点击