Java Android删除文件MediaScannerConnection

Java Android删除文件MediaScannerConnection,java,android,file,delete-file,android-mediascanner,Java,Android,File,Delete File,Android Mediascanner,我正在尝试使用命令File.delete()从内部内存(ASUS TF101)中删除一些文件或目录。然而,使用Android文件资源管理器,我可以看到文件是如何被删除的,但使用Windows资源管理器,它们仍然显示在那里 在添加文件时,我解决了一个类似的问题,即仅创建MediaScannerConction(并使用scanFile方法) 有人知道如何解决这个问题吗?当然,重新启动设备是不可接受的,因为最终用户不会喜欢这种“解决方案”。我也有同样的问题,但我发现了问题: Android使用媒体表来

我正在尝试使用命令File.delete()从内部内存(ASUS TF101)中删除一些文件或目录。然而,使用Android文件资源管理器,我可以看到文件是如何被删除的,但使用Windows资源管理器,它们仍然显示在那里

在添加文件时,我解决了一个类似的问题,即仅创建MediaScannerConction(并使用scanFile方法)


有人知道如何解决这个问题吗?当然,重新启动设备是不可接受的,因为最终用户不会喜欢这种“解决方案”。

我也有同样的问题,但我发现了问题:

Android使用媒体表来处理文件。对文件进行更改时,必须更新此表

试试这个:

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));
谷歌文档:

请参见本帖中manisha的答案:

在我的例子中,它工作得很好,因为我保存了一张照片,然后使用MediaScannerConnection扫描它,所以当扫描完成时,我有了该文件的URI,然后我可以使用以下代码消除问题

getContentResolver().delete(imageUri, null, null);

希望这对你有用。这似乎比通过向android系统发送意向来强制SD卡重新安装更合适。

非常感谢。。我已经尝试了很多方法,但是没有一种在安卓4.2中有效,但是你的建议很好。这在安卓4.4 KitKat之后不再有效,参考