關於Android呼叫相機拍照,完成後無法返回
阿新 • • 發佈:2019-02-09
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.