FileProvider
在Android7.0过后 应用之间 Activity之间传递File路径的时候需要提供权限:
需要申明一个Provider来提供content://
的uri格式;
申明一个FileProvider
<manifest>
...
<application>
...
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="com.mydomain.fileprovider"//唯一标识符
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />//配置提供文件的路径
</provider>
...
</application>
</manifest>
file_paths 路径的配置
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<files-path name="my_images" path="images/"/>
...
</paths>
路径可配置
<files-path name="name" path="path" />
返回的是类似于: Context.getFilesDir().
<cache-path name="name" path="path" />
返回的是类似于: getCacheDir().
<external-path name="name" path="path" />
返回的是类似于: Environment.getExternalStorageDirectory().
<external-files-path name="name" path="path" />
返回的是类似于: Context#getExternalFilesDir(String) Context.getExternalFilesDir(null).
<external-cache-path name="name" path="path" />
返回的是类似于:Context.getExternalCacheDir().
还有一个
root-path
如果文件在外置的SD卡下应该配置这个:
<root-path name="name" path="path" />