一、在manifest文件中声明FileProvider,如:
<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>
authorities属性指明FileProvider为content URI产生的URI域名部分,meta-data下的resource则指明你要分享的文件夹。
二、指明可分享的文件夹
在res文件夹下新建xml文件夹,在xml文件夹下新建resource属性指明的filepaths.xml文件,在其中声明可分享的文件夹,如:
<paths>
<files-path path="images/" name="myimages" />
</paths>
<paths>标签可以有多个子节点,每个子节点指明了一个分享的文件夹;
<file-path>标签指示要分享的文件夹位于你的app的内存的files目录下,path属性表明一个子文件夹,name属性添加对应的路径到content URI;
<external-path>标签指示要分享的文件位于外部存储的文件夹;
<cache-path>标签指示要分享的文件位于app的缓存文件夹下。
三.设计一个文件选择的界面
在manifest文件中声明该界面,action为ACTION_PICK,category为CATEGORY_DEFAULT和CATEGORY_OPENABLE,也可以声明你的app可以分享的文件类型,如:
<