2018-03-13

        解决调用系统拍照targetSdkVersion>=24的FileUriExposedException

1.通过Application解决

    File file = new File(fileName);

    Uri uri = Uri.fromFile(file)

Application 中onCreate()添加

// android 7.0系统解决拍照的问题

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

StrictMode.setVmPolicy(builder.build());

builder.detectFileUriExposure();

2.通过判断targetSdkVersion版本,,大于等于24,则通过FileProvider来实现

(1)

if (Build.VERSION.SDK_INT >=24) {

   imageUri = FileProvider.getUriForFile(this,"com.zzh.onresumedemo.PhotoActivity",outputImage);

}else {

   imageUri = Uri.fromFile(outputImage);

}

(2)

AndroidManifest中设置provider

    android:authorities="com.zzh.onresumedemo.PhotoActivity"


    android:name="android.support.v4.content.FileProvider"

    android:exported="false"

    android:grantUriPermissions="true">

     android:name="android.support.FILE_PROVIDER_PATHS"

     android:resource="@xml/file_paths">

划线部分authorities填写摄像头调用的activity

(3)

file_pahts 再res中建立xml文件夹,new file_paths.xml,填写

<?xml version="1.0" encoding="utf-8"?>

<paths xmlns:android="http://schemas.android.com/apk/res/android">

    <external-path name="my_images> paht="."/>

</paths>

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容