Android 7.0调用系统相机

最近在项目中遇到了7.0系统相机调用适配问题,特此记录。

在6.0之后,7.0之前我们调用相机并保存图片需要用到6.0的运行时权限,在此不做描述。7.0之后我们不仅需要6.0的运行时权限还需要用到系统提供的FileProvider来创建一个Uri(7.0之前我们只需自己指定一个图片存储路径)。

以下是请求权限代码片段:

申请权限

注:private static final int CAMERA_PERMISSIONS_REQUEST_CODE=0x03;

以下是7.0之前的调用相机代码片段:

7.0之前调用相机

以下是7.0之后调用相机代码片段:

7.0调用相机

注意:此处com.takePhotoDemo.FileProvider须与清单注册的authorities内容保持一致。

7.0之后需要用到系统提供的FileProvider。所以我们还需要进行以下几步:

1:在res文件夹下新建xml文件夹,再在xml下新建文件file_paths.xml。代码如下:

file_paths.xml

2:在清单文件里注册FileProvider。代码如下:

注册provider

最后附上完整代码:

你可能感兴趣的:(Android 7.0调用系统相机)