解决AndroidN上报错:android.os.FileUriExposedException:file:///storage/emulated/0/
(2023-09-22 14:17:09)分类: androidios |
前言
Android 7.0系统发布后,拿到能升级的nexus 6P,就开始了7.0的适配。发现在Android
7.0以上,在相机拍照和图片裁剪上,可能会碰到以下一些错误:
1
2
3
4
5
6
7
|
Process: com.yuyh.imgsel, PID: 22995 // 错误1 android.os.FileUriExposedException: file:
///storage/emulated/0/Android/data/com.yuyh.imgsel/cache/1486438962645.jpg
exposed beyond app through ClipData.Item.getUri() // 错误2 android.os.FileUriExposedException: file:
///storage/emulated/0/DCIM/RxGalleryFinal/IMG_20161018180127.jpg
exposed beyond app through Intent.getData() |
主要是由于在Android 7.0以后,用了Content Uri 替换了原本的File
Uri,故在targetSdkVersion=24
的时候,部分
“`Uri.fromFile()
“` 方法就不适用了。 **File Uri 与 Content Uri
的区别** - File Uri 对应的是文件本身的存储路径 - Content Uri 对应的是文件在Content
Provider的路径 所以在android 7.0 以上,我们就需要将File Uri转换为 Content Uri。
转:https://blog.csdn.net/a123473915/article/details/78141915