应用程序可以调用摄像头进行拍照并将图片保存在SD卡上,具体步骤如下:
1.创建File对象
File对象用于存储拍照后的照片,具体代码如下:
File outputImage = new File(getExternalCacheDir(),"output_image.jpg");
outputImage.createNewFile();
由于从Android6.0开始,读写SD卡被列为危险权限,将图片存储在SD卡需要进行运行时权限处理,而使用应用关联缓存目录则不需要,应用关联缓存目录是专门用于存放当前应用缓存数据的。通过调用getExternalCacheDir()方法可以得到应用关联缓存目录,并且指定图片的名字为output_image.jpg。
2.将File对象转换成Uri对象
Uri对象标识着output_image.jpg这张图片的本地真实路径,由于从Android7.0开始直接使用本地真实路径的Uri被认为是不安全的,会抛出异常,因此获取图片Uri对象的方法分两种情况考虑:
(1)若设备的系统版本低于Android7.0
直接调用Uri的fromFile()方法,代码如下:
imageUri = Uri.fromFile(outputImage);
(2)若设备的系统版本高于等于Android7.0
通过调用FileProvider类的getUriForFile(ÿ