【问题标题】:Content resolver cannot delete the image file内容解析器无法删除图像文件
【发布时间】:2014-02-13 10:12:22
【问题描述】:

我尝试使用内容解析器的删除方法来删除图像文件。它显示它已被删除,但我在查看图像文件夹时没有发现任何差异。

    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

希望能得到你的帮助。

问候, 德克斯特

【问题讨论】:

    标签: android persistence delete-file android-contentresolver


    【解决方案1】:

    我认为您的代码只是从表 MediaStore.Images.Media 表中删除数据,而不是物理图像。

    您可以查询 MediaStore.Images.Media.DATA 字段,该字段为您提供图像的绝对路径。

    然后像删除普通文件一样删除文件。

    【讨论】:

    • 我不太确定发生了什么,但重启手机后,它现在按预期工作。 getContentResolver().delete 实际上足以删除图像。还是谢谢!
    猜你喜欢
    • 2020-08-18
    • 2021-10-29
    • 2022-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-10
    • 1970-01-01
    • 2021-07-02
    相关资源
    最近更新 更多