美文网首页Android 开发工具
Android 7.0 provider属性说明

Android 7.0 provider属性说明

作者: galafan | 来源:发表于2018-07-18 23:54 被阅读0次

    2018-07-18

    生命不息,奋斗不止,万事起于忽微,量变引起质变 -------- Hongyang

    1.注册一个provider

    <provider
        android:name="android.support.v4.content.FileProvider"
        android:authorities="com.test.demo.fileprovider"
        android:exported="false"
        android:grantUriPermissions="true">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/file_paths" />
    </provider>
    

    2.编写resource xml file

    <?xml version="1.0" encoding="utf-8"?>
    <paths xmlns:android="http://schemas.android.com/apk/res/android">
        <root-path name="root" path="" />
        <files-path name="files" path="" />
        <cache-path name="cache" path="" />
        <external-path name="external" path="" />
        <external-files-path name="name" path="path" />
         <external-cache-path name="name" path="path" />
    </paths>
    

    3.name代表什么
    而 name 属性用于给 path 属性所指定的子目录名称取一个别名。后续生成 content:// URI 时,会使用这个别名代替真实目录名。这样做的目的,很显然是为了提高安全性
    4.path是什么意思
    path 属性用于指定当前子元素所代表目录下需要共享的子目录名称。注意:path 属性值不能使用具体的独立文件名,只能是目录名。

    意味着路径下的全部文件
      <external-cache-path name="name" path="." />
    

    5.在paths节点内部支持以下几个子节点,分别为:

    1.<root-path/> 代表设备的根目录new File("/");
    2.<files-path/> 代表context.getFilesDir()
    3.<cache-path/> 代表context.getCacheDir()
    4.<external-path/> 代表Environment.getExternalStorageDirectory()
    5.<external-files-path>代表context.getExternalFilesDirs()
    6.<external-cache-path>代表getExternalCacheDirs()
    

    摘自: Hongyang

    Android 7.0 行为变更 通过FileProvider在应用间共享文件吧

    image

    相关文章

      网友评论

        本文标题:Android 7.0 provider属性说明

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