我尝试使用内容解析器的delete方法删除图像文件。它表明它已被删除,但是当我检入图像文件夹时看不到任何区别。
int id = getLastImageId();
int deleted = getContentResolver().delete(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
MediaStore.Images.Media._ID + "=?", new String[]{ Long.toString(id) } );
Log.i("", "total deleted rows:" + deleted);
在logcat中,我可以看到已删除的行总数为1。您可以放心,该getLastImageId
方法是正确的。此外,我什至尝试删除MediaStore
表中的所有内容,但无济于事。例如:
int id = getLastImageId();
int deleted = getContentResolver().delete(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
null, null);
Log.i("", "total deleted rows:" + deleted);
对于此示例,删除的总行为834,这是我手机中的所有内容,但图像仍然存在。仅供参考,我正在检查的图像位于sdcard / DCIM / Camera
希望能得到您的帮助。
问候,德克斯特
我认为您的代码只是从表MediaStore.Images.Media表中删除数据,而不是物理图像中的数据。
您可以查询MediaStore.Images.Media.DATA字段,该字段为您提供了图像的绝对路径。
然后删除文件,就像删除普通文件一样。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句