更新 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。
我正在尝试(不幸的是)为音轨和图像更新 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。