【问题标题】:MediaStore show Images after deleted from File ManagerMediaStore 从文件管理器中删除后显示图像
【发布时间】:2016-10-18 11:11:17
【问题描述】:

我使用 MediaStore 从 Android 设备获取所有图像。然后在我从文件管理器中删除一些图像之后。之后我再次使用 MediaStore 获取图像,我得到了所有已删除的文件,这是问题。

为什么 MediaStore 会返回设备上不再存在的文件(从设备中删除)?

我用来从 MediaStore 检索图像的代码。

Uri uri = android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI;

String[] projection = {MediaStore.MediaColumns.DATA, MediaStore.Images.Media.BUCKET_DISPLAY_NAME};

Cursor cursor = activity.getContentResolver().query(uri, projection, null, null, MediaStore.MediaColumns.DATE_ADDED + " DESC");

String ImagePath = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.MediaColumns.DATA));

帮助解决此问题。

【问题讨论】:

  • 也许你的图像存储你的个人应用程序文件夹而不是文件管理器,一旦检查。
  • @BhunnuBaba.... 不是个人文件夹,可能是相机照片。

标签: android android-studio mediastore


【解决方案1】:

为什么 MediaStore 会返回设备上不再存在的文件(从设备中删除)?

因为您使用的任何文件管理器都没有通知MediaStore 删除文件。 MediaStore 最终会发现,但可能需要几个小时。

【讨论】:

  • 这是默认文件管理器,而且图库不显示所有已删除的图像。
  • @Janak: "这是默认文件管理器" -- Android 没有文件管理器。您的设备可能有文件管理器。而且您的“默认文件管理器”没有做任何事情来通知MediaStore 有关文件的删除。 “图库没有显示所有已删除的图像”——有数千种 Android 设备型号和数百种不同的预装图库应用程序。如果我不得不猜测,画廊应用程序在为它们创建缩略图时检测到文件丢失,并简单地将它们从呈现的内容中过滤掉。
  • 我们可以做些什么来刷新 MediaStore,比如 Gallery 或 FileManager?因为文件管理器也不会显示已删除的文件。
  • @Janak:“因为文件管理器也没有显示删除的文件”——很可能,文件管理器正在使用文件系统,而不是 MediaStore。 “我们可以做些什么来刷新 MediaStore”——你不知道什么被删除了,所以,不,你没有好方法来刷新 MediaStore
【解决方案2】:

您可以使用以下代码重新扫描媒体

 MediaScannerConnection.scanFile(context, new String[]{imagePath}, null, new MediaScannerConnection.OnScanCompletedListener() {
    public void onScanCompleted(String path, Uri uri) {
        //something that you want to do
    }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-04
    • 1970-01-01
    • 2019-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多