【问题标题】:How to update() an image in MediaStore如何在 MediaStore 中更新()图像
【发布时间】:2015-05-04 21:20:54
【问题描述】:

对于query MediaStore,我只需使用正确的“基本 URI”创建一个 URI 并附加 IMAGE_ID(我从相应的缩略图中获得)。然后,我只需调用内容解析器来获取光标:

    Long IMAGE_ID = 172712; // let's say we have this IMAGE_ID
    Uri baseUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
    baseUri = Uri.withAppendedPath(baseUri, ""+ IMAGE_ID);

    // let's just get this one field, description
    String[] projection = {MediaStore.Images.Media.DESCRIPTION};

    Cursor c = getContext().getContentResolver().query(baseUri, projection, null, null, null);
    if (!c.moveToFirst()) return -1; 
    String description = c.getString(0);  // and we're done :-)

但是,如果我想设置 MediaStore.Images.Media.DESCRIPTION 字段怎么办?我可以以某种方式调用update 方法吗?

    Long IMAGE_ID = 172712; // same image...
    Uri baseUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
    baseUri = Uri.withAppendedPath(baseUri, ""+ IMAGE_ID);

    // create an object with the value to set
    ContentValues test_values = new ContentValues();
    test_values.put(MediaStore.Images.Media.DESCRIPTION, "Some image text...");

    // i.e., SQL like: UPDATE MEDIASTORE SET DESCRIPTION = "Some image text..." WHERE IMAGE_ID = 172712;
    String sIMAGE_ID = "" + IMAGE_ID;
    int res = getContext().getContentResolver().update(baseUri, test_values, MediaStore.Images.Media._ID + "= ?", new String[]{sIMAGE_ID });  // works fine!

【问题讨论】:

    标签: android mediastore


    【解决方案1】:

    以上代码运行良好(至少在模拟器、Nexus 7 设备中)! update 设置DESCRIPTION“字段”。

    【讨论】:

      猜你喜欢
      • 2020-01-07
      • 1970-01-01
      • 2019-11-16
      • 2016-08-29
      • 2023-03-28
      • 2011-03-19
      • 2012-06-05
      • 2023-01-27
      • 1970-01-01
      相关资源
      最近更新 更多