当前位置: 首页 > 知识库问答 >
问题:

用相机拍一张照片,然后删除

司徒俊良
2023-03-14
getContentResolver().delete(data.getData, null, null)

在我从相机中拍摄了照片之后,在onActivityResult(int requestCode,int resultCode,Intent data)方法中调用。在本例中,我得到了一个NPE,因为数据是空的。

编辑

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    if (id == R.id.action_open_camera) {
        ContentValues values = new ContentValues();
        imageName = "Example" + System.currentTimeMillis();
        values.put(MediaStore.Images.Media.TITLE, imageName);
        values.put(MediaStore.Images.Media.DESCRPITION, "Camera_" + System.currentTimeMillis());
        imageUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);

        Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        takePictureIntent.putExtra(MediaStore.EXTRA_MEDIA_TITLE, imageName);
        takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageuri);
        if (takePictureIntent.resolveActivity(this.getPackageManager()) != null) {
            startActivityForResult(takePictureIntent, 1);
        }
        return true;
    }
    return super.onOptionsItemSelected(item);
}

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == 1 && resultCode == RESULT.OK) {
        Bitmap image = MediaStore.Images.Media.getBitmap(getContentResolver(), imageUri);
        // I do some stuff with this image here and want to delete it afterwards
        File fDelete = new File(imageUri.getPath());
        getApplicationContext().deleteFile(fDelete.getName());
    }
}

共有1个答案

凤经武
2023-03-14

如果你想删除你让相机应用程序拍摄的照片,那么不要从纵隔开始使用内容uri。

只需构建一个文件系统路径并使用一个文件提供程序,然后将获得的uri放入extra_output中。

完成后,使用文件系统路径删除文件。

 类似资料:
  • 我可以按下一个按钮,打开原生相机app,成功拍下一张照片。但当我查看手机上的照片库或原生应用程序时,照片并没有保存在那里。我对Android很陌生,所以很可能我的代码中遗漏了一些重要的东西。 问题: 1)这些图片保存在哪里? 2)我是否可以修改下面的代码,以保存到内部存储,所以所有的图片拍摄与我的应用程序是私人的,只能通过我的应用程序访问? 3)如果我想将这些图片连同一些文本/其他输入一起保存到一

  • 所以我遇到了一个问题,前面在我提问的问题中提到过:将图像(ACTION_image_CAPTURE)上载到Firebase存储 我对这个问题进行了更多的搜索,并应用了Android Studio文档:https://developer.android.com/training/camera/photobasics.html#TaskPhotoView 所以,在您阅读代码之前,我基本上想说一下需要什

  • 可使用前端相机或背面相机拍摄照片。 A ) (显示模式) 轻触图标可切换为显示模式。 B ) (位置数据)/(切换相机)/(切换图像大小) 启用位置数据的使用设定即可显示(位置数据)。轻触图标可使用Wi-Fi、GPS*、手机基地台*的信息取得位置数据。取得后会显示(已取得位置数据),拍摄照片时会同时记录位置数据。 * 仅限3G/Wi-Fi机种 C ) (快门) 轻触图标可拍摄照片。 D ) 已拍摄

  • 本课的目标是整合Camera这样我们可以用他来拍照了,但是要达到这个目标需要下点功夫。 除了要出发相机拍照之外,我们还要: 将照片移动到手机上的持久储存 在模板中展示这些照片 显示其他的照片 允许删除照片 这样看来本课程还是蛮大的。在本应用的开始部分我们设置了Ionic Native,也就是基础部分里面的内容,Ionic Native是Ionic包装好的Cordova插件,使用更简单。 本课程中将

  • 我一直在开发一个摄像头应用程序,所有的工作都是拍摄和保存照片。但我希望在拍摄照片时显示的Imageview能够保存在实际拍摄的照片中。可能吗? 现在,我一直试图让图像视图与我绘制相机预览的布局相同。 我想,也许如果它画在与相机相同的视图上,那么它也会看到图像和照片。 有没有人知道这是否可能,或者我必须采取另一种方法?如果是这样,链接到其他解决方案如何做到这一点将不胜感激:) 谢谢 编辑:我一直遵循

  • 问题内容: 我已经在此问题上停留了一段时间,并查看了各种教程以寻求帮助,但尚未成功。 我实质上已经在我的 应用程序中 利用了该功能来 拍照 并显示它, 但是 它无法保存拍照。 这是包含我试图使其根据教程发挥作用的代码: 我已经在文件中包含了所有必要的内容。 问题答案: File imagesFolder = new File(Environment.getExternalStorageDirect