Android 7.0 FileUriExposedException解决办法

Android 7.0为了提高私有文件的安全性进行了系统权限更改。当尝试把file://URI发到应用外会触发FileUriExposedException,官方推荐方法是使用FileProvider。(详情:https://developer.android.com/reference/android/support/v4/content/FileProvider.html)

使用方法:
1,在AndroidManifest.xml配置FileProvider
android:name="android.support.v4.content.FileProvider"
android:authorities="com.xxx.xxx.fileprovider"
android:grantUriPermissions="true"
android:exported="false">
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_path" />

这里需要把com.xxx.xxx改成自己应用的包名。
2,在资源文件的xml目录下创建file_path.xml文件


name="file_path"
path="."/>

3,生成Uri
Uri uri = FileProvider.getUriForFile(context, "com.xxx.xxx.fileprovider", file);
第二个参数authority要和第一步的配置里android:authorities的值保持一致。

demo:https://github.com/lihuzi19/FileDemoApplication

你可能感兴趣的:(Android 7.0 FileUriExposedException解决办法)