从 Android 7.0 开始,Android SDK 中的 StrictMode 策略禁止开发人员在应用外部公开 file:// URI。具体表现为,当咱们在应用中使用包含 file:// URI 的 Intent 离开本身的应用时,程序会发生FileUriExposedException 异常html
这里咱们要使用到的 FileProvider,就是 ContentProvider 的一个特殊子类,帮助咱们将访问受限的 file:// URI 转化为能够受权共享的 content:// URI。android
首先 要去 Manifest文件里注册FileProviderapp
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.xmlide