重命名后,图像在 Android 图库中消失



我正在尝试重命名图库中从相机拍摄的图像以命名新名称。当我重命名文件时,原始图像消失了,显示 2 个黑色方块。任何人都可以通过告诉我重命名图库图像的程序来帮助我解决这个问题。

路径如下: /mnt/sdcard/DCIM/Camera

我尝试通过内容提供商更新图像标题,如下所示:

ContentValues val = new ContentValues();
val.put(Images.Media.TITLE, "ImageTitle23");
getContentResolver().update(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, val, null, null);

图像标题在库中已更改。

但是当我尝试查询更新的图像时,如下所示,我得到的名称与上一个相同:

final String[] imageColumns = { MediaStore.Images.Media._ID, MediaStore.Images.Media.DATA };
final String imageOrderBy = MediaStore.Images.Media._ID+" DESC";   
Cursor imageCursor = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, imageColumns, MediaStore.Images.Media._ID+"="+id, null, imageOrderBy);  
if(imageCursor.moveToFirst()){    
  int idd = imageCursor.getInt(imageCursor.getColumnIndex(MediaStore.Images.Media._ID)); 
  String fullPath = imageCursor.getString(imageCursor.getColumnIndex(MediaStore.Images.Media.DATA)); 

谁能帮我解决这个问题?

MediaStore 会查找图片中的更改,但它不会实时响应所有更改。每次执行此类修改时,都应要求 MediaScanner 扫描此文件:

MediaScannerConnection.scanFile(
  getApplicationContext(), 
  new String[]{file.getAbsolutePath()}, 
  null, 
  new OnScanCompletedListener() {
     @Override
     public void onScanCompleted(String path, Uri uri) {
        Log.v("grokkingandroid", 
              "file " + path + " was scanned seccessfully: " + uri);
     }
  });

另外,您应该查看这篇博客文章,其中提供了有关此用例的许多有用信息。

库正在与 MediaStore 内容提供程序交互。如果更改图像文件的名称,则可能需要更新内容提供程序中的字段。

您可以在媒体商店参考中阅读它:http://developer.android.com/reference/android/provider/MediaStore.Images.Media.html

您可能只是触发媒体商店的刷新。看看这个线程:如何在Android上刷新MediaStore?

最新更新