Android 7.0行为变更 FileUriExposedException解决方法

当我们开发关于【在应用间共享文件】相关功能的时候,在Android 7.0上经常会报出此运行时异常,那么Android 7.0以下没问题的代码,为什么跑到Android 7.0+的设备上运行就出问题了呢?,这主要来自于Android 7.0的一项【行为变更】!
对于面向 Android 7.0 的应用,Android 框架执行的 StrictMode API 政策禁止在您的应用外部公开 file:// URI。如果一项包含文件 URI 的 intent 离开您的应用,则应用出现故障,并出现 FileUriExposedException 异常。如图:
要在应用间共享文件,您应发送一项 content:// URI,并授予 URI 临时访问权限。进行此授权的最简单方式是使用 FileProvider 类。
FileProvider 类的用法:
第一步:为您的应用定义一个FileProvider清单条目,这个条目可以声明一个xml文件,这个xml文件用来指定应用程序可以共享的目录。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp">
<application
...>
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="com.example.myapp.fileprovider"
android:grantUriPermissions="true"
android:exported="false">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/filepaths" />
</provider>
...
</application>
</manifest>
在这段代码中, android:authorities 属性应该是唯一的,推荐使用【应用包名+fileprovider】,推荐这样写
android:authorities=”${applicationId}.file_provider”,可以自动找到应用包名。
meta-data标签指定了一个路径,这个路径使用resource指定的xml文件来指明是那个路径:
xml文件如下:
<?xml version="1.0" encoding="utf-8"?> <paths> <external-files-path name="bga_upgrade_apk" path="upgrade_apk" /> </paths>
Uri的获取方式也要根据当前Android系统版本区分对待:
File dir = getExternalFilesDir("user_icon");
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) {
icon_path = FileProvider.getUriForFile(getApplicationContext(),
"com.mqt.android_headicon_cut.file_provider", new File(dir, TEMP_FILE_NAME));
} else {
icon_path = Uri.fromFile(new File(dir, TEMP_FILE_NAME));
}
这样问题就解决了。贴上一个安装apk适配7.0的例子:https://www./article/113307.htm
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Android
# 7.0行为变更
# FileUriExposedException
# 变更
# Android N 7.0中报错:android.os.FileUriExposedExceptio
# Android webview 遇到android.os.FileUriExposedExcepti
# Android基于Xposed修改微信运动步数实例
# Android中利用Xposed框架实现拦截系统方法
# Android中Xposed框架篇---修改系统位置信息实现自身隐藏功能实例
# Xposed插件开发入门详解
# 您的
# 也要
# 推荐使用
# 要在
# 这段
# 跑到
# 希望能
# 来自于
# 如图
# 当我们
# 谢谢大家
# 最简单
# 解决方法
# 贴上
# 经常会
# 可以自动
# 则应
# 应用程序
# 出现故障
# 访问权限
相关文章:
网站制作说明怎么写,简述网页设计的流程并说明原因?
攀枝花网站建设,攀枝花营业执照网上怎么年审?
定制建站哪家更专业可靠?推荐榜单揭晓
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
如何在Tomcat中配置并部署网站项目?
如何通过二级域名建站提升品牌影响力?
如何通过FTP服务器快速搭建网站?
如何用花生壳三步快速搭建专属网站?
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
长沙做网站要多少钱,长沙国安网络怎么样?
建站之星24小时客服电话如何获取?
图册素材网站设计制作软件,图册的导出方式有几种?
制作网站的公司有哪些,做一个公司网站要多少钱?
建站之星安装失败:服务器环境不兼容?
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
如何用美橙互联一键搭建多站合一网站?
如何配置IIS站点权限与局域网访问?
常州企业建站如何选择最佳模板?
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
建站主机如何选?高性价比方案全解析
如何在Windows 2008云服务器安全搭建网站?
如何获取开源自助建站系统免费下载链接?
建站主机选虚拟主机还是云服务器更好?
想学网站制作怎么学,建立一个网站要花费多少?
制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?
建站主机如何安装配置?新手必看操作指南
建站之星如何实现PC+手机+微信网站五合一建站?
太原网站制作公司有哪些,网约车营运证查询官网?
整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?
微信小程序 input输入框控件详解及实例(多种示例)
潮流网站制作头像软件下载,适合母子的网名有哪些?
清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
网站建设设计制作营销公司南阳,如何策划设计和建设网站?
如何用IIS7快速搭建并优化网站站点?
建站主机是什么?如何选择适合的建站主机?
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
网站制作免费,什么网站能看正片电影?
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
如何快速搭建高效可靠的建站解决方案?
广州顶尖建站服务:企业官网建设与SEO优化一体化方案
如何配置WinSCP新建站点的密钥验证步骤?
枣阳网站制作,阳新火车站打的到仙岛湖多少钱?
设计网站制作公司有哪些,制作网页教程?
网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?
如何通过西部建站助手安装IIS服务器?
如何在橙子建站中快速调整背景颜色?
如何选择PHP开源工具快速搭建网站?
php json中文编码为null的解决办法
*请认真填写需求信息,我们会在24小时内与您取得联系。