繁体   English   中英

在Android中拍照时,如何提供与图库中的路径相同的文件路径?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM