从 Android 7.0 开始,Android SDK 中的 StrictMode 策略禁止开发人员在应用外部公开 file:// URI。具体表现为,当我们在应用中使用包含 file:// URI 的 Intent 离开自己的应用时,程序会发生FileUriExposedException 异常
这里我们要使用到的 FileProvider,就是 ContentProvider 的一个特殊子类,帮助我们将访问受限的 file:// URI 转化为可以授权共享的 content:// URI。
首先 要去 Manifest文件里注册FileProvider
android:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:supportsRtl="true"android:theme="@style/AppTheme">
android:name="android.support.v4.content.FileProvider"android:authorities="${applicationId}.FileProvider" //此处的属性值后面获取URI用到android:grantUriPermissions="true"android:exported="false">
android:name="android.support.FILE_PROVIDER_PATHS"android:resource="@xml/file_paths"/>
其次在 res 目录下新建一个 xml 文件夹 里边添加一个xml文件 名字比如:path.xml