使用android摄像头时,如何删除库中的重复图片?
我在活动中使用Android摄像头拍照:使用android摄像头时,如何删除库中的重复图片?,android,camera,gallery,Android,Camera,Gallery,我在活动中使用Android摄像头拍照: Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, getImagePath()); startActivityForResult(intent, TAKE_PHOTO_CODE); 当我离开相机应用程序时,照片保存在两个地方: 在getImagePath()方法指定的路径上(这是正确的) 走进画廊。我
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, getImagePath());
startActivityForResult(intent, TAKE_PHOTO_CODE);
当我离开相机应用程序时,照片保存在两个地方:
如何防止照片保存到库中?如果我做不到,如何在onActivityResult()中获取照片路径,以便删除它?是否将图像保存到getImagePath()代码中的SD卡中?如果是这样,Android媒体扫描仪将从该位置将其拾取并显示在多媒体资料中。您可以在保存图像的目录中创建一个名为.nomedia的空文件,以便媒体扫描仪忽略该文件夹中的所有媒体文件。对于
Intent.ACTION\u GET\u CONTENT
您可以删除库文件(将其复制到文件夹后)。也许这也适用于MediaStore.ACTION\u IMAGE\u CAPTURE
(使用MediaStore.EXTRA\u输出
)。我使用以下代码片段删除从Intent.ACTION\u GET\u CONTENT
返回的库文件:
public String getRealPathFromURI(Uri contentUri) {
String[] proj = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(contentUri, proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Uri u = data.getData();
new File(getRealPathFromURI(u)).delete();
...
否,getImagePath()只返回Uri。我不知道.nomedia文件可能对将来有用。但是,这并不能解决我的问题。您将图像文件保存到哪里?此方法不适用于意图意图(MediaStore.ACTION\u IMAGE\u CAPTURE),因为在onActivityResult中返回的意图(在您的情况下是数据)为空!