之前开发的时候涉及到 FileProvider 相关的功能,梳理了一次,但是没有记录,最近再次遇到了,发现又要查询一次,就顺便总结记录一下。
在res目录下创建一个xml目录,在xml目录下新建一个filepaths.xml,例如:
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<files-path name="ziexie_download" path="download/"/>
...
</paths>
在标签中配置至少一个或多个path子元素,path子元素则用来定义content uri所对应的路径目录。以为例:
以上面的例子,对应的配置当访问文件 content://com.example.myapp.bihe0832/zixie_download/test.apk 时,就会找到path路径Content.getFilesDir() + “/download/” 并查找 test.apk 文件
配置完共享地址后,获取content uri的值,这个uri即提供给第三方进行访问的uri地址
File apkPath = new File(Context.getFilesDir(), "download");
File apkFile = new File(apkPath, "test.apk");
Uri contentUri = getUriForFile(getContext(), "com.example.myapp.bihe0832", newFile);