作者:不完美
本文实现的效果是:点击一个button,调用系统相机进行拍照,并储存在picture根目录下
一、页面布局
页面布局比较简单,只有一个button,代码如下:
1 |
|
二、增加权限
在AndroidManifest.xml中增加调用相机和存储数据的权限,代码如下:
1 | <uses-permission android:name="android.permission.CAMERA"/> |
三、设置照片存储路径
1 | private File createImageFile() throws IOException{ |
四、启动系统相机拍照并存储
1 | private void dispatchTakePictureIntent() { |
五、遇到的问题
Android 7.0禁止应用程序向外部公布file://的 URI,尝试传递 file://的 URI会触发 FileUriException。应用程序之间共享数据,应该发送 content://的 URI,且授予URI临时访问权限。解决方法配置FileProvider。
1、在AnadroidMainfest.xml中配置provider
1 | <provider |
2、增加provider_paths.xml
在res文件夹下新建xml文件夹,在xml文件夹下增加provider_paths.xml,provider_paths.xml文件内容如下:
1 |
六、代码清单
目录结构如下图所示:

1、AndroidManifest.xml
1 |
|
2、MainActivity.java
1 | package com.example.z.test; |
3、activity_main.xml
1 |
|
4、provider_paths.xml
1 |
|