2018-07-18
生命不息,奮斗不止,萬事起于忽微,量變引起質(zhì)變 -------- Hongyang
1.注冊一個(gè)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 屬性所指定的子目錄名稱取一個(gè)別名。后續(xù)生成 content:// URI 時(shí),會(huì)使用這個(gè)別名代替真實(shí)目錄名。這樣做的目的,很顯然是為了提高安全性
4.path是什么意思
path 屬性用于指定當(dāng)前子元素所代表目錄下需要共享的子目錄名稱。注意:path 屬性值不能使用具體的獨(dú)立文件名,只能是目錄名。
意味著路徑下的全部文件
<external-cache-path name="name" path="." />
5.在paths節(jié)點(diǎn)內(nèi)部支持以下幾個(gè)子節(jié)點(diǎn),分別為:
1.<root-path/> 代表設(shè)備的根目錄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在應(yīng)用間共享文件吧

image