您的当前位置:首页正文

关于android调用拍照不返回的问题。

2024-11-29 来源:个人技术集锦

  

今天写代码发现只要是设置了

// 判断是否挂载了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();
						}
					}
则可以了。

但是我们其他项目也是没这句话的,也是可以的。。。我就奇怪了。


转载于:https://my.oschina.net/lin003/blog/551473

显示全文