美文网首页
针对Android7.0以上 适用的FileProvider

针对Android7.0以上 适用的FileProvider

作者: 大川的川 | 来源:发表于2018-08-22 17:30 被阅读0次

    项目中的更新下载,图片拍照,如果是7.0以下,没有发现任何异常,但是到了7.0以上,你会发现,你大爷已经不是以前的你大爷了!怎么搞?FileProvider伺候上。。。。

    FileProvider 是 ContentProvider 的子类,所以

    1、需要在AndroidManifest 中进行注册,

    AndroidManifest中的注册代码

    红框部分:applicationId是你的包名,包名配置在build.gradle(Module:app)的defaultConfig节点中。不写固定的包名,可以解决如果同一套代码,需要多渠道/多包名打包,不影响生成好的各个APK的安装否则会提示:“安装失败,与已安装应用内容提供者冲突”

    设置name属性和指定的值,android.support.v4.content.FileProvider。

    设置authorities,一般由你的包名+fileprovider构成,保证唯一性。

    设置exported为false。禁止跟其他应用交互。

    设置grantUriPermission为true,授予文件访问权限。

    设置"android : resource" 属性设置为 @xml / file_paths_upload。需要对真实的 filepath 进行映射,所以需要编写一个 xml 文档,用于描述可使用的文件夹目录

    2、资源文件夹下新建一个 xml 目录,里面包含一个文件file_paths_upload

    file_paths_upload 

    3、安装apk文件


    获取APK安装包路径(android 7.0以上)

    Android 7.0 禁止在应用外部公开 file:// URI,所以我们必须使用 content:// 替代 file://,这时主要需要 FileProvider 的支持,还需要动态申请访问SD卡目录的权限。

    相关文章

      网友评论

          本文标题:针对Android7.0以上 适用的FileProvider

          本文链接:https://www.haomeiwen.com/subject/aheyiftx.html