MediaStore.ACTION_IMAGE_CAPTURE始终使用不同的名称保存图片

时间:2016-03-31 15:47:50

标签: android

我试图通过拍摄照片然后将其加载到我的应用程序中来保存图像。但我面临的问题是图片总是以不同的名字保存,所以我没有加载它。 (我检查了我的文件管理器,然后看到我用不同的名字保存的图片。)

Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
    File photoFile = null;
    try {
        photoFile = createImageFile();
    } catch (IOException ex) {
        // Error occurred while creating the File
    }
    // Continue only if the File was successfully created
    if (photoFile != null) {
        takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoFile));
        startActivityForResult(takePictureIntent, RESULT_TAKE_PHOTO);
    }
}

private File createImageFile() throws IOException {
    // Create an image file name
    String imageFileName = "puzzle";
    File storageDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
    File image = File.createTempFile(
            imageFileName,  /* prefix */
            ".jpg",         /* suffix */
            storageDir      /* directory */
    );

    // Save a file: path for use with ACTION_VIEW intents
    mCurrentPhotoPath = "file:" + image.getAbsolutePath();
    return image;
}

我无法确定为什么它总是以不同的名字保存。

1 个答案:

答案 0 :(得分:1)

  

我无法确定为什么它总是以不同的名字保存。

因为你告诉它using createTempFile()。使用createTempFile()后面的是创建一个具有唯一文件名的File。如果您不想使用唯一的文件名,请不要使用createTempFile()