android N FileProvider使用方法
来源:互联网 发布:会计特点 知乎 编辑:程序博客网 时间:2024/06/01 08:43
自从小米平板3发布之后,很多客户反应我们的APP升级时,下载进度到了97%左右就停止了,无任何响应。经过排查,其实下载下来的安装包是完整的,在静默安装时失败了,UI没来得及更新。安装失败的原因是: Android7.0新增了应用间共享文件FileProvider,我们的安装包保存在SD卡目录上,安装时读取文件失败;需要通过FileProvider读取文件才能正常安装。
FileProvider继承于ContentProvider,可以使文件共享时更安全。以前使用 file:///Uri,那么现在可以用content://Uri来替换。
定义FileProvider
在mainifest中注册,新增<provider>标签元素。
- 设置name属性和指定的值,android.support.v4.content.FileProvider。
- 设置authorities,一般由你的包名+fileprovider构成,保证唯一性。
- 设置exported为false。禁止跟其他应用交互。
- 设置grantUriPermission为true,授予文件访问权限。
一个FilerProvider只能为你预先指定的文件目录产生一个content URI。如何指定文件域和文件路径呢?
创建资源文件,res/xml/provider_path.xml。
注意,<path>必须包含一个或者多个子元素。
- files-path:代表APP的内部存储,类似Context.getFileDirs()目录中的文件
- cache-path:代表APP内部存储中缓存目录下的文件。类似,getCacheDir()
- external-files:代表外部存储的根目录。类似,Enviroment.getExternalStorageDirectory()
- external-files-path:代表APP的外部存储根目录。类似,Context#getExternalFileDir(String). Context.getExternalFileDir(null).
- external-cache-path:代表APP外部缓存根目录。类似,Context.getExternalCacheDir()
配置成功,如何调用
根据系统版本判别,低于Android N的版本,仍然采用Uri.formUri(file)。而N版本或是以上版本是这样调用的,FileProvider.getUriForFile(mContext,getPackageName()+".fileprovider",file)
最后以APP安装示例结束FileProvider的基本使用方法。
阅读全文
0 0
- android N FileProvider使用方法
- Android N : FileProvider
- FileProvider在Android N上的应用
- FileProvider 在 Android N 上的应用
- Android N 使用FileProvider避免android.os.FileUriExposedException
- Android N 7.0 应用间共享文件(FileProvider)
- Android 7.0 FileProvider
- Android 7.0 FileProvider 使用说明
- Android 7.0中FileProvider
- Android FileProvider的理解
- Android FileProvider的使用
- 【随心笔录】Android N 文件Uri传递,报出FileUriExposedException异常,使用FileProvider
- FileProvider
- FileProvider
- FileProvider
- android 选择图片 裁剪 Fileprovider
- FileProvider android 7 文件共享
- Android 7.0 FileProvider的使用
- MySQL——delete 和 truncate 以及 drop 区别
- 微服务API级权限的技术架构
- 使用支持向量机(分类)对手写体数字图像进行识别
- matalb取整函数round、fix、ceil和floor函数在fpga中的实现
- Robberies HDU
- android N FileProvider使用方法
- 注册页面DIV实现(CSS盒子模型、超链接的伪类)
- $.get和$.post引起的中文乱码问题
- jsp基本语法
- 什么是听觉?机器听觉?
- 内存溢出
- 虽然我是菜比,但这里的资料都是我亲自尝过的
- 协变与逆变
- Shader编程学习笔记(四)—— Unity Shader的组织形式(ShaderLab)