andorid 基于7.0 之前 和 7.0 之后 调用系统相机 拍照及裁剪
Android 随着版本迭代,安全机制愈发加强,6.0 开始动态权限,7.0开始对于一些系统函数的调用要求也加强,本篇文章主要讲解 相机 及 裁剪 差异 及使用
URI 变化
7.0 之前使用系统相机
/* 拍照*/
public static void tabkePhoto(Activity activity, int code, Uri uri) {
//利用隐式Intent 打开系统相机
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
activity.startActivityForResult(intent, code);//这里的TAKE_PHOTO是定义的一个静态常数变量
}
7.0 之后
//配置 xml
//xml 内容
<?xml version="1.0" encoding="utf-8"?>
<paths>
<!-- path设置为'.'时代表整个存储卡 Environment.getExternalStorageDirectory() + "/path/" -->
<external-path
name="external_path"
path="etchotline/" />
<external-path
name="my_images"
path="Pictures" />
<external-path
name="external_storage_root"
path="." />
<external-path
name="crop_img"
path="crop" />
<external-path
name="external_storage_root"
path="Pictures" />
<files-path
name="internal_storage_file"
path="etchotline/" />
<files-path
name="files-path"
path="." />
<!--配置root-path。这样子可以读取到sd卡和一些应用分身的目录,否则微信分身保存的图片,就会导致 java.lang.IllegalArgumentException: Failed to find configured root that contains /storage/emulated/999/tencent/MicroMsg/WeiXin/export1544062754693.jpg-->
<root-path
name=