gpt4 book ai didi

java - RESULT_CANCELED 上的图片文件

转载 作者:行者123 更新时间:2023-12-01 22:25:22 25 4
gpt4 key购买 nike

我希望能够在使用默认相机玻璃器皿拍摄照片时跟踪图像文件名。这样我就可以在完成后删除它们。我有以下代码:

        ...
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, TAKE_PICTURE_REQUEST);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

if (requestCode == TAKE_PICTURE_REQUEST && resultCode == RESULT_OK) {

String imgPath = data.getStringExtra(Intents.EXTRA_PICTURE_FILE_PATH);
mService.addToImageQueue(imgPath);
}

else if (requestCode == TAKE_PICTURE_REQUEST && resultCode == RESULT_CANCELED) {
...
}
}

如果我点击,resultCode 将返回 RESULT_OK 。当我关闭(向下滑动)时,我得到 resultCode RESULT_CANCELED 。这就是我想要它工作的方式,除了它仍然生成图像文件,即使 resultCode 是 RESULT_CANCELED ...老实说,我觉得这可能是一个错误,因为我尝试使用 data.getStringExtra(Intents.EXTRA_PICTURE_FILE_PATH);并得到了 NullPointerException 。难道我做错了什么?有没有办法在 RESULT_CANCELED 上获取此文件名?

最佳答案

您可以先创建一个临时文件(查看 this tutorial 中的 createImageFile() 方法)。如果成功创建,请执行两件事:

  1. 将此文件的路径保存为字符串。
  2. 将此文件的 URI 包含在 Intent extra 中 (putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoFile)))。

如果 resultCode 为 RESULT_CANCELED,您现在可以追溯到临时文件的路径并对其调用 delete()

这里是一些示例代码:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_TAKE_PHOTO && resultCode == RESULT_OK) {
Log.v("MainActivity", "Result successful.");
} else if (requestCode == REQUEST_TAKE_PHOTO && resultCode == RESULT_CANCELED) {
Log.v(TAG, "Result canceled. Uri of file is " + mCurrentPhotoPath);
File file = new File(mCurrentPhotoPath);
if (file.exists()) {
Log.v(TAG, "File exists.");
if(file.delete()) {
Log.v(TAG, "File was successfully deleted!");
} else {
Log.v(TAG, "File not successfully deleted.");
}
} else {
Log.v(TAG, "File does not exist!");
}


}
}

注意:要使 new File(mCurrentPhotoPath) 正常工作,请从 mCurrentPhotoPath 的开头删除“file:”。

关于java - RESULT_CANCELED 上的图片文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28911623/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com