有两个要求
我通过MediaStore.Audio.Media.EXTERNAL_CONTENT_URI
查询ContentResolver
以获取音频项目并分析其属性。
问题是如何将这些属性与音频项相关联 - 没有额外的MediaStore
表列来保存用户数据。
目前的解决方案是创建一个内部数据库,在那里存储声音属性,并使用MediaStore.Audio.Media._ID
作为音频项的关键。
因此,为了获得最响亮的曲目,我需要
ContentResolver
子句查询WHERE _ID IN (...)
并获取音频项这可能会引入一般情况下的性能问题(长列表ID)。此外,当我想要将内部数据库与内容提供商同步时,事情会变得复杂,例如:删除以前删除的音频项目的属性记录。内容提供商中没有关于已删除项目的信息,因此我需要比较两个来源中的所有ID。
所以,我担心的是:
MediaStore
表列,对吗?与ContactsContract.Data
比较。 可能的解决方案: