1. 程式人生 > >關於Android呼叫相機拍照,完成後無法返回

關於Android呼叫相機拍照,完成後無法返回

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
		String path = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "test_2016_7_26";
		File file = new File(path);
		if(!file.exists()) {
			file.mkdir();
		}
		path += File.separator + "test123.jpg";
		//Uri uri = Uri.fromFile(new File(path));
		//System.out.println("================>" + uri.toString());
		intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.parse(path));
		startActivityForResult(intent, 0);

因為工作需要,需要呼叫相機拍照,將拍完的照片儲存到指定路徑用於上傳。

但是,拍完後無法返回,上網查原因說是指定的儲存路徑錯誤,但檢查過,路徑是正確的。後來和自己之前寫的程式碼對照發現只有Uri的建立例項方式不同,雖然intent.putExtra接受的確是是Uri但是Uri.parseString和Uri.fromFile是有區別的,因為在fromFile的Uri中,路徑頭自動加了file:標識,而相機需要識別為本地路徑所以只能用fromFile傳入Uri.