是否有一种标准的方法来检索摄像机拍摄的保存图像的路径,因为我找到了显示路径的不同方法,但它们导致应用程序崩溃。 因为我是Android编程新手,所以我只需要一些指导。 请检查代码:
Java代码:
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent imageIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File imagesFolder = new File(Environment.getExternalStorageDirectory(), "My Images");
imagesFolder.mkdirs();
File image = new File(imagesFolder, "img01");
uriSavedImage = Uri.fromFile(image);
File f = new File (uriSavedImage.getPath());// <---------
//imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, f.getPath()); // <---------
startActivityForResult(imageIntent,CAMERA_REQUEST_CODE);
}
});
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if ((requestCode == CAMERA_REQUEST_CODE) && (resultCode == RESULT_OK)) {
Toast.makeText(getApplicationContext(),// <---------
" "+data.getData(),
Toast.LENGTH_SHORT).show();
答案 0 :(得分:0)
崩溃是因为您将getParent()
传递给convertImageUriToFile
方法(您可以在堆栈跟踪中看到NullPointerException)。根据{{3}} getParent()
,如果活动不是嵌入式活动,则返回null。你很可能不是。
改为使用File f = convertImageUriToFile(uriSavedImage, this);
。
对于另一个错误,imageUri为null,请参阅此android docs以获取非常可能的解释和解决方案。
Morover,你的imageUri是一个“file://”类型uri,而不是“content://”类型。要从中获取路径,请使用
new File(uri.getPath());
而不是convertImageUriToFIle()
方法。我认为该方法仅适用于“content://”类型uris。
实际上,你不需要从你自己制作的文件中获取文件路径,你就有了这条路径:
File image = new File(imagesFolder, "img01");