Android 如何删除已取消的视频

Android 如何删除已取消的视频,android,android-camera-intent,Android,Android Camera Intent,我正在使用本机摄像机拍摄视频。在Nexus S中,如果我捕获了一个视频,那么无论我是取消还是按ok,视频文件总是存储在默认的Medi-URI路径中。但是我有一个要求,当用户点击ok时删除捕获的视频。我正在使用 下面的代码调用camera Intent videoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE); startActivityForResult(videoIntent, CAPTURE_VIDEO); 下面的ciode处理取消

我正在使用本机摄像机拍摄视频。在Nexus S中,如果我捕获了一个视频,那么无论我是取消还是按ok,视频文件总是存储在默认的Medi-URI路径中。但是我有一个要求,当用户点击ok时删除捕获的视频。我正在使用 下面的代码调用camera

Intent videoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
startActivityForResult(videoIntent, CAPTURE_VIDEO);
下面的ciode处理取消按钮单击事件

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        try {
            if (requestCode == CAPTURE_VIDEO) {if(resultCode == Activity.RESULT_CANCELED) 
//pointer comes here successfully. It tells that cancel button is clicked. But I am unabelt to know how to delete the currently cancelled video
}
}
}

好吧,这是一种丑陋的方式

首先从返回的URI获取视频的真实路径,如

private String videoPath = "";

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == CAPTURE_VIDEO) 
    {

      Uri vid = data.getData();
      videoPath = getRealPathFromURI(vid);
    }   
}

public String getRealPathFromURI(Uri contentUri) {
    String[] proj = { MediaStore.Videos.Media.DATA };
    Cursor cursor = managedQuery(contentUri, proj, null, null, null);
    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Videos.Media.DATA);
    cursor.moveToFirst();
    return cursor.getString(column_index);
}
现在你有一个视频文件的真实路径,然后使用文件操作你可以删除它

File videoFile = new File(videoPath);
videoFile.deleteOnExit();

我怀疑是否有任何方法可以从android数据库中删除它。

没有。它不起作用。因为当我们取消视频时,URI变成了null。因此,我无法理解第一个答案的第二条评论中的这个问题。。我想这会对你有所帮助。我正在使用ACTION_VIDEO_CAPTURE来捕获视频。是的,我知道,看看那篇评论,它描述了三星的设备。