启动相机意图,但不保存图像

dot*_*tty 8 java android android-intent

有没有办法使用相机,但只能暂时保存图像?我正在使用以下代码加载相机,然后我使用onActivityResult()来获取图像(如果有的话......)

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
Run Code Online (Sandbox Code Playgroud)

问题是,当拍摄图像时,它会被保存到SD卡中.

编辑

意图由以下代码调用

String imagePath;

imagePath = Environment.getExternalStorageState() + "/images/myimage.jpg";
File file = new File( imagePath );
Uri outputFileUri = Uri.fromFile( file );

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
Run Code Online (Sandbox Code Playgroud)

当活动返回onActivityResult我正在使用的数据()时

File imageFile = new File(imagePath);
imageFile.delete();
Run Code Online (Sandbox Code Playgroud)

如何永远不会删除图像.此外,如果我进入我的画廊应用程序,图像是在一个默认名称(如image57465.jpg),我觉得它cameraIntent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );实际上没有工作.

编辑2

实际上,文件正在保存到SDCARD,并正确删除.但是,似乎正在保存缩略图.我想知道如何获取缩略图路径,以便我可以在使用它后删除它吗?

kar*_*ark 6

那么,你不能在完成使用后删除图像吗?我刚刚快速检查了Camera API规范,但我找不到任何表明你可以将图像标记为临时图像的东西.

请尝试以下方法:

public onActivityResult(int request, int result, Intent data) {

    if( request == CAPTURE_IMAGE ) {

        if( result == RESULT_OK ) {

            /*Use the image in the way you want to here and save the path */

            //Delete the image
            File image = new File(path);
            image.delete();

        }

    }

}
Run Code Online (Sandbox Code Playgroud)

如果它适合您,请告诉我.