方案一 合并資源文件聲明
簡單粗暴速度快
當(dāng)面臨兩個(gè)及以上provider聲明時(shí)可以采用合并resource文件的方式
在/res/xml/xx_file_paths.xml中進(jìn)行合并聲明
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<paths>
<external-path name="path_1" path="."/>
<external-path name="path_2" path="."/>
</paths>
</resources >
但此處有一個(gè)風(fēng)險(xiǎn),因?yàn)橹挥幸粋€(gè)provider節(jié)點(diǎn),所以如果面臨各Library 對(duì) authorities參數(shù)值取值規(guī)則不同 則此方案不可用。
方案二 自定義provider
拓展性好,易于維護(hù)及拓展
自定義類繼承FileProvider并在Manifest中引用
<provider
android:name="com.xx.sdk.xx.FileProvider"
android:authorities="${AD_APPLICATIONID}.FileProvider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
看情況方案一與方案二可結(jié)合使用