2014-11-04 48 views
1

我在这里有一个小问题。已删除的图片仍在图库中可见

在我的应用程序中,我让用户从图库中选择一张图片。在做其他事情之前,我先保存它的路径。 当用户选择他想要的图片时,我希望将其复制到其他文件夹中,然后从原始图片中删除。

那么,它kiiinda的作品。原始图片被删除,副本出现在另一个文件夹中。 Buuut。它仍然在那里。 被删除的图片仍然可以在图库中看到,并且副本无法看到。当我呼叫Gdx.files.absolute(originalPath).exists()时,它返回false,并且Gdx.files.external(copyPath).exists()它返回true,我可以使用没有问题的图片副本。

它看起来像画廊没有更新。

我使用它来删除和复制图片:

public void MoveToCustomFolder() { 
    if (DoesOriginalPathExist()) { 
     if (!DoesCopyExist()) { 
      System.out.println("Copying"); 
      Gdx.files.external("/CustomFolder/" + fileName).write(Gdx.files.absolute(filePath).read(), true); 
     } 
     System.out.println("Deleting"); 
     Gdx.files.absolute(filePath).delete(); 
    } 
} 

filePath是在画廊的原始图片的absolutePath和fileName的文件名(“picture.jpg”)

我在研究中发现了一些东西。清除媒体存储应用程序的数据后,在一段时间后,正确的图库显示出来,没有删除的图片和所属的副本。

此外,我有WRITE_EXTERNAL_STORAGE权限。

你们知道怎么回事吗?

回答

1

找到解决方案。

我不得不更新此功能的画廊:

public void UpdateGallery(String filePath) { 
    sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(new File(filePath)))); 
}