Uri权限问题&&FileProvider学习
来源:互联网 发布:js给div添加点击事件 编辑:程序博客网 时间:2024/06/02 07:27
今天用andriod 7.0的手机运行某个项目时报错:
Caused by: java.lang.SecurityException: Permission Denial: opening provider android.support.v4.content.FileProvider from ProcessRecord
刚看到这个错的时候我很纳闷,因为我在项目开始运行的时候就询问了读写权限并同意了,这里又因为读写权限报错,真是见鬼了。后来耐心的搜了下,发现人家在使用uri的时候都在后面加了下面这句授权代码:
context.grantUriPermission(getPackageName(),uri,Intent.FLAG_GRANT_READ_URI_PERMISSION);
于是我也加了上去,再运行果然好了。猜想Uri的权限比较特殊吧,要使用的时候单独授予。
修改后代码:
if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.N){ uri = FileProvider.getUriForFile(mContext, BuildConfig.APPLICATION_ID + ".provider", file); //给Uri授予临时读写权限(BuildConfig.APPLICATION_ID为项目包名) mContext.grantUriPermission(BuildConfig.APPLICATION_ID,uri,Intent.FLAG_GRANT_READ_URI_PERMISSION); intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);}else{ uri = Uri.fromFile(file);}
===========================================
关于FileProVider的使用步骤:
1、manifest中申明FileProvider
2、res/xml中定义对外暴露的文件夹路径
3、生成content://类型的Uri
4、给Uri授予临时权限
5、使用Intent传递Urihttp:/
FileProVider的使用具体见:http://www.jianshu.com/p/55eae30d133c
阅读全文
0 0
- Uri权限问题&&FileProvider学习
- 快速使用FileProvider解决Android7.0文件权限问题
- 快速使用FileProvider解决Android7.0文件权限问题
- URI权限
- URI 权限
- FileProvider
- FileProvider
- FileProvider
- 得到FileProvider返回后的URI,后续处理
- Android权限Uri.parse
- URI学习
- git学习-权限问题
- android学习(十二) 分享文件 FileProvider
- Android 7.0之访问文件的权限和FileProvider类
- Win8学习总结之"给定的 System.Uri 无法转换为 Windows.Foundation.Uri"问题
- 【随心笔录】Android N 文件Uri传递,报出FileUriExposedException异常,使用FileProvider
- Android权限Uri.parse用法
- Android权限Uri.parse的几种用法 (学习日记)
- 十进制二进制转换,C语言实现
- HTTP协议(言简意赅,总结到位)
- Eclipse安装教程 ——史上最详细安装java & python教程说明
- linux系统下运行NS2的脚本文件(.tcl文件)
- js清除浏览器缓存的几种方法(项目总结)
- Uri权限问题&&FileProvider学习
- 百度地图 label添加点击事件,显示提示信息
- php socket编程 V客学院知识分享
- 画流程图
- 淘宝JAVA中间件Diamond详解(2)---原理介绍
- 智能音箱对比:Google,Amazon,Apple,讯飞
- java 基础理解
- 差分约束——洛谷 P1645 序列
- KPI之痛:有哪些奇葩的技术人员考核方式?