在Android Q / API29上更新MediaStore中的条目无法正常工作

5

我试图更新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模拟器上尝试上面的代码。我不确定这个问题是否与使用模拟器有关。

如果您能提供任何指向正确方向的信息,我将不胜感激。


“它不起作用”是什么意思?你有什么具体症状?此外,这是通过insert()添加的内容还是其他应用程序添加的? - CommonsWare
3
感谢您对此表示关注,CommonsWare。在API 16-28上,更新语句返回1个受影响的条目,并执行更新。在API29上,它返回0并且没有行被影响。我的日志中没有显示任何错误或消息。我在应用启动时查询所有音乐集合,并允许更改有关曲目的一些信息。我自己不插入这些记录。 - Sami
你拥有什么权限?我在Android Q中没有尝试修改我自己未创建的MediaStore条目。 - CommonsWare
我在我的清单文件中添加了android:requestLegacyExternalStorage="true",并且拥有android.permission.WRITE_EXTERNAL_STORAGE权限。同时,在Android M+设备上启动时,我也请求写入权限。 - Sami
@CommonsWare 我使用我的应用程序创建了一个播放列表,尝试重命名它(也是使用我的应用程序)。这也没有起作用。真的很奇怪的行为。 - Sami
1个回答

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接