Android调用相机出现FileExposedException

今天碰到了个奇怪的问题,在调用相机时闪退了,此时宝宝的内心是崩溃的😖,还好在费了九牛二虎之力后最终把它给解决了,步骤如下:

步骤一:
在Manifest文件中加上这么一句话

<provider
            android:name="android.support.v4.content.FileProvider"
            android:authorities="${applicationId}.packagename.fileProvider"
            android:grantUriPermissions="true"
            android:exported="false">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/file_paths" />
</provider>

注意了:
packagename改为自己的包名,如com.google.news

步骤二:
在res目录下新建文件夹xml,然后在xml文件夹下新建名为file_paths的xml文件

<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <external-path
        name="external_files"
        path="." />
</paths>

步骤三:
把之前的Uri.fromFile改为

FileProvider.getUriForFile(context,
                context.packageName + ".packagename.fileProvider", file)

注意:packagename仍然要改为自己的包名,别忘了packagename前面的.,这里主要和Manifest文件中声明的android:authorities
保持一致

最后注明:
此方法为API24所有,所以如果minSdkVersion小于24的话要做判断,判断方法如下:

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {
            
        } else {
            
        }

改完之后会发现此时又可以愉快的玩耍啦😜!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容