今天写代码发现只要是设置了
// 判断是否挂载了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(); } }则可以了。
但是我们其他项目也是没这句话的,也是可以的。。。我就奇怪了。