更新 MediaStore 上的条目在 Android Q / API29 上不起作用

Updating an entry on MediaStore does not work on Android Q / API29

我正在尝试(不幸的是)为音轨和图像更新 MediaStore 的条目。我正在使用这样的东西:

ContentValues values = new ContentValues();
values.put(MediaStore.Audio.Media.TITLE, title);
values.put(MediaStore.Audio.Media.YEAR, year);

resolver.update(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, values, MediaStore.Audio.Media._ID + "= ?", new String[] { String.valueOf(id) })

以上代码段适用于 API16->API28,没有问题。

不过,在 API29 上它不起作用。日志或消息中不会显示任何错误。我正在 API29 模拟器上尝试上面的代码。我不确定这个问题是否与使用模拟器有关。

如果有任何信息能给我指明正确的方向,我将不胜感激。

为我工作。

您需要调用 update 一次并将标志 IS_PENDING 设置为 1。然后使用您想要的修改值和标志 IS_PENDING 再次调用 update设置为 0。