如何停止 MediaStore.ACTION_IMAGE_CAPTURE 复制图片
Posted
技术标签:
【中文标题】如何停止 MediaStore.ACTION_IMAGE_CAPTURE 复制图片【英文标题】:How can I stop MediaStore.ACTION_IMAGE_CAPTURE duplicating pictures 【发布时间】:2011-11-21 21:40:44 【问题描述】:我正在使用以下代码拍照:
private static final int TAKE_PHOTO_CODE = 1;
final Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(tFile));
startActivityForResult(intent, TAKE_PHOTO_CODE);
这段代码可以正常工作,但是我会自动获得我拍摄的每张照片的副本,并自动出现在“相机镜头”画廊以及我想要照片去的地方。
如何阻止它自动复制我的图片?
文件名和我指定的都不一样,所以我不能轻易删除。
感谢您的帮助!
【问题讨论】:
我发现了一个添加了侦听器的示例,因此当他们拍照时,它会通知他们图像已放置在图库中,然后可以将其删除,但我宁愿停止复制首先是图像。任何想法,因为我真的坚持这个? 嗨,李,你找到了这个问题的答案吗?因为我遇到了同样的问题。谢谢 不,我还没有弄清楚如何解决这个问题。我目前正在尝试找到一些代码,让我可以获取添加到图库中的最新图片的文件名,以便我可以删除它。如果我不能阻止它复制图像,至少如果我可以删除重复的图像,那是下一个最好的事情。 【参考方案1】:我找到了答案。
以下功能删除保存到媒体存储的最后一张照片。
public void deleteLastCapturedImage()
String[] projection =
MediaStore.Images.ImageColumns.SIZE,
MediaStore.Images.ImageColumns.DISPLAY_NAME,
MediaStore.Images.ImageColumns.DATA,
BaseColumns._ID
;
Cursor c = null;
Uri u = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
try
if (u != null)
c = managedQuery(u, projection, null, null, null);
if ((c != null) && (c.moveToLast()))
ContentResolver cr = getContentResolver();
int i = cr.delete(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, BaseColumns._ID + "=" + c.getString(c.getColumnIndex(BaseColumns._ID)), null);
Log.v(LOG_TAG, "Number of column deleted : " + i);
finally
if (c != null)
c.close();
请在 onActivityResult 中调用上述函数。
【讨论】:
谢谢,有机会我会试试看的! 你只是删除那些没有这种行为的手机上的用户图像,只需再次检查你的代码 我正在删除刚刚拍摄的照片。这只是编码的一部分。以上是关于如何停止 MediaStore.ACTION_IMAGE_CAPTURE 复制图片的主要内容,如果未能解决你的问题,请参考以下文章