[英]How do I supply file path that is the same as the path in the gallery when taking photo in Android?
我试图使用相机意图拍摄照片,并希望获取完整尺寸图像的文件路径。 我正在从http://developer.android.com/training/camera/photobasics.html阅读该教程。 问题是,当我使用MediaStore.Images.Media.EXTERNAL_CONTENT_URI
查看MediaStore.Images.Media.DATA
列中的文件路径时,图像具有不同的路径。 如何提供相同的文件路径? 我看着拍照并将其放置在Gallery中 ,尽管只是将Environment.DIRECTORY_PICTURES
更改为Environment.DIRECTORY_DCIM
,但仍然无法使用。
以下是我的拍照代码。
private Uri photoPath;
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
if (requestCode == REQUEST_IMAGE_CAPTURE) {
getContentResolver().notifyChange(photoPath, null);
System.out.println(photoPath);
}
}
}
@Override
public void onClick(View v) {
if (v.getId() == R.id.camera_button) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (intent.resolveActivity(getPackageManager()) != null) {
try {
String timestamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
String image = "IMG_" + timestamp;
File storageDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
File photo = File.createTempFile(image, ".jpg", storageDir);
photoPath = Uri.fromFile(photo);
intent.putExtra(MediaStore.EXTRA_OUTPUT, photoPath);
startActivityForResult(intent, REQUEST_IMAGE_CAPTURE);
} catch (IOException e) {
Log.e(TAG, e.getMessage());
}
}
}
我上面的代码生成文件路径/storage/emulated/0/Pictures/IMG_20150805_121624.jpg
而实际上它是库中的/storage/emulated/0/DCIM/100MEDIA/IMAG0531.jpg
。 前一个路径确实是我的图像(如我在photoPath
上指定的photoPath
),但是我想获取后一个路径。 我该怎么办?
您将必须使用Environment.DIRECTORY_DCIM
。
android API DOC显然具有可以使用的各种目录的详细信息。 希望这可以帮助您将文件保存到/storage/emulated/0/DCIM/
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.