今天写代码发现只要是设置了
// 判断是否挂载了SD卡
String savePath = "";
String storageState = Environment.getExternalStorageState();
if (storageState.equals(Environment.MEDIA_MOUNTED)) {
savePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/multiFileSelector/Camera/";
File savedir = new File(savePath);
if (!savedir.exists()) {
savedir.mkdirs();
}
}
// 没有挂载SD卡,无法保存文件
if (StringUtils.isNullOrEmpty(savePath)) {
UiUtils.showShort(activity, "无法保存照片,请检查SD卡是否挂载");
return;
}
String fileName = "camera_" + StringUtils.getDateTimeNow("yyyyMMddHHmmss") + ".jpg";// 照片命名
File out = new File(savePath, fileName);
cameraUri = Uri.fromFile(out);
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, cameraUri);
startActivityForResult(intent, 0);
这句话
intent.putExtra(MediaStore.EXTRA_OUTPUT, cameraUri);
拍照之后点击确定是没有任何反应了,但是去掉这一句又是可以的。但是我又必须要自定义拍照位置
百度,谷歌也找不到任何有效的答案。
最后,,最后,,
我发现是因为我的cameraUri关联的保存文件不存在的原因。
最后加上
if(!out.exists()){
try {
out.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
则可以了。
但是我们其他项目也是没这句话的,也是可以的。。。我就奇怪了。