我尝试使用内容解析器的删除方法删除图像文件。它显示它已被删除但我在检查图像文件夹时没有看到任何差异。
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
希望得到你的帮助。
此致 德克斯特
答案 0 :(得分:0)
我认为您的代码只是从表MediaStore.Images.Media表中删除数据而不是物理图像。
您可以查询MediaStore.Images.Media.DATA字段,该字段为您提供图像的绝对路径。
然后删除文件,就像删除普通文件一样。