Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在MediaStore中更新()图像_Android_Mediastore - Fatal编程技术网

Android 如何在MediaStore中更新()图像

Android 如何在MediaStore中更新()图像,android,mediastore,Android,Mediastore,为了queryMediaStore,我只需创建一个具有适当“基本URI”的URI,并附加图像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

为了
query
MediaStore,我只需创建一个具有适当“基本URI”的URI,并附加图像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!
以上代码运行良好(至少在emulator、Nexus7设备中是如此)<代码>更新设置描述“字段”