我想使用相机意图(camera intent)拍照,并将其保存到默认的DCIM文件夹中。然后,我想获取存储图片的路径/文件名。
我正在尝试使用以下代码:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, TAKE_PICTURE);
使用这段代码后,相机会打开并在拍摄一张照片后关闭并将照片保存到默认图像文件夹(通常是/dcim/camera或sdcard/dcim/camera...)
但现在我该如何获取已拍摄图片的路径和文件名?
我已经尝试了几乎所有在 onActivityResult
中的方法。
String result = data.getData();
并且
String result = data.getDataString();
并且
String result = data.toURI();
并且
Uri uri = data.getData();
过去两天我一直在研究这个问题,网络上和stackoverflow上有很多文章但都不起作用。我不想要缩略图,只想要相机拍摄的图片的路径(uri?)。
感谢任何帮助。
编辑:当我尝试:
path=Environment.DIRECTORY_DCIM + "/test.jpg";
File file = new File(path);
Uri outputFileUri = Uri.fromFile(file);
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
startActivityForResult(intent, TAKE_PICTURE);
它不会将图像存储为test.jpg,而是使用普通的图像名称2011-10-03.....jpg(但这也可以,我只需要图像的路径,无论名称是什么都没关系)。
最好的问候
再次编辑
path=Environment.getExternalStorageDirectory().getPath() + "/DCIM/Camera/";
File file = new File(path,"test111111111.jpg");
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
Uri outputFileUri = Uri.fromFile(file);
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
startActivityForResult(intent, TAKE_PICTURE);
我尝试了这个方法,它将图像存储到正确的文件夹中,并给定了名称(例如test111111.jpg)。 但是我现在该如何在onActivityResult中获取文件路径呢?