安卓7.0遇到 android.os.FileUriExposedException: file:///storage/emulated.. exposed beyond app through Intent.getData()

1、在AndroidManifest.xml中添加如下代码

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    ...
    <application
        ...
        <provider
            android:name="android.support.v4.content.FileProvider"
            android:authorities="${applicationId}.provider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/provider_paths"/>
        </provider>
    </application>
</manifest>

2、在res目录下新建一个xml文件夹,并且新建一个provider_paths的xml文件

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

3、修改代码

Uri photoURI = Uri.fromFile(createImageFile());

变成:

Uri photoURI = FileProvider.getUriForFile(context, context.getApplicationContext().getPackageName() + ".provider", createImageFile());
时间: 2024-07-28 22:22:13

安卓7.0遇到 android.os.FileUriExposedException: file:///storage/emulated.. exposed beyond app through Intent.getData()的相关文章

【适配整理】Android 7.0 调取系统相机崩溃解决android.os.FileUriExposedException

一.写在前面 最近由于廖子尧忙于自己公司的事情和 OkGo (一款专注于让网络请求更简单的网络框架) ,故让LZ 接替维护 ImagePicker(一款支持单.多选.旋转和裁剪的图片选择器),也是处理了诸多bug,最近总算趋于稳定了,这里就把Android N (API 24) 以上的相机适配方案分享给大家. Android Nougat 也是被更新很久了,作为一名 Andorid 开发者,我们有义务时刻准备自己调整 targetSdkVersion 为最近的一个,于是从之前的 23 直接提高到

安卓问题总结( android.os.NetworkOnMainThreadException异常)

问题描述: android.os.NetworkOnMainThreadException异常(不要在主线程访问网络资源) 问题分析: 造成这种异常的原因是安卓版本问题(仔细研究错误原因是代码不符合Android规范),网上搜索发现:android3.0版本开始(具体是不是从这个版本开始的,就不深究咯)就强制程序不能在主线程中访问网络,要把访问网络放在独立的线程中. 解决方式: 1.想要忽略这些强制策略问题的话,可以在onCreate()方法里面加上 StrictMode.setThreadPo

Android N安装apk报错:android.os.FileUriExposedException

StackOverflow: http://stackoverflow.com/questions/38200282/android-os-fileuriexposedexception-file-storage-emulated-0-test-txt-exposed 1.在AndroidMainifest.xml文件中添加: <provider android:name="android.support.v4.content.FileProvider" android:auth

android 7.0拍照问题file:///storage/emulated/0/photo.jpeg exposed beyond app through ClipData.Item.getUri

在Application的onCreat()方法中添加以下代码: // android 7.0系统解决拍照的问题 StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder(); StrictMode.setVmPolicy(builder.build()); builder.detectFileUriExposure(); 出处http://blog.csdn.net/qq_23179075/article/det

安卓7.0拍照遇到 Uri暴露错误

最近,项目又做到,调用摄像头拍照获取图片这个功能. 用以前的代码直接用,发现在Android7.0上使用时会出现问题. Android6.0之后,动态申请权限已成常态. 调用摄像头拍照获取图片这个功能,需要动态申请 照相机权限.SD卡读写权限. 可是加了这些权限后,还是会报错. 错误:android.os.FileUriExposedException: file:///storage/emulated.. exposed beyond app through Intent.getData()

安卓6.0(棉花糖)新特性汇总

安卓6.0(棉花糖)新特性汇总 Android伴随着众多新特性和新功能,Android6.0(API level 23)在系统和API上都有着诸多的改变. 1.App Permissions(软件权限管理) 在安卓6.0里,应用许可提示可以自定义了.它允许对应用的权限进行高度管理,比如应用能否使用位置.相机.麦克风.通讯录等,这些都可以开放给开发者和用户. 作为开发者,当你的app的目标版本(target)为Android6.0(API 23)或更高时,请确保在运行时进行权限的检查和请求.其中,

安卓9.0内测的背后,是上万App开发者半年来的适配优化

8月7日,Android P即Android 9.0正式版终于和大家见面了,历经了近半年的改进和优化,Google正式发布安卓9.0.Android 9.0利用人工智能技术,让用户的手机更加智能.简洁与人性化.按照谷歌对Android系统独特的命名方式,这个版本被命名为Android 9.0 Pie. 据谷歌介绍,Android 9.0 Pie第一个变化是为"刘海屏"设备进行了适配,在开发者模式中,原生系统已经可以模拟"刘海屏"的凹口并对通知栏进行适配和优化(时间移

安卓开发解决android.os.NetworkOnMainThreadException异常方法(主线程不能直接调用webservice)

安卓开发解决android.os.NetworkOnMainThreadException异常方法 2013-01-07 14:01:04|  分类: 技术 |  标签:安卓  技术  java  |举报|字号 订阅 在android 2.3上访问网络的方法,在android 4.0上运行时报android.os.NetworkOnMainThreadException异常,主要问题在于4.0中访问网络不能在主线程中进行,有两个方法可以解决.第一种是在主线程中增加如下代码[不推荐]: // 详见

android webview type=file文件上传,安卓端代码

http://stackoverflow.com/questions/5907369/file-upload-in-webview http://blog.csdn.net/longlingli/article/details/16946047 1 package com.example.cairh_sjkh_it; 2 3 4 import android.app.Activity; 5 import android.app.AlertDialog; 6 import android.app.