如果相册的曲目分成多个目录,并且导致多行不同,看起来相同的相册在MediaStore
中被拆分为多个行尽管曲目全部来自同一个专辑(同一个艺术家),但它们的值为MediaStore.Audio.Media.ALBUM_ID
和MediaStore.Audio.Media.ALBUM_KEY
列。MediaStore中错误的多个值(当只有一个值时)
例如,请考虑这些文件路径:
/mnt/sdcard/X/a.mp3
/mnt/sdcard/X/b.mp3
/mnt/sdcard/X/c.mp3
/mnt/sdcard/X/d.mp3
/mnt/sdcard/Y/e.mp3
/mnt/sdcard/Y/f.mp3
/mnt/sdcard/Y/g.mp3
/mnt/sdcard/Z/h.mp3
/mnt/sdcard/Z/i.mp3
/mnt/sdcard/Z/j.mp3
公告MP3文件由三个不同的文件夹, “X”, “Y” 分离, “Z”。以上所有曲目的专辑标题都是一样的;他们全部来自同一位艺术家的同一张专辑。
但是,当我检索他们的数据MediaStore.Audio.Media.ALBUM_ID
和MediaStore.Audio.Media.ALBUM_KEY
时,我看到三个不同的组分别分别到每个文件夹。他们都应该返回相同的ALBUM_ID
和ALBUM_KEY
,但他们不。 ALBUM_ID
和ALBUM_KEY
对于a.mp3
与e.mp3
和h.mp3
的那些不同,但与b.mp3
,c.mp3
和d.mp3
的那些相同。
只有当我将它们全部合并到同一文件夹中时,它们才会更新以共享相同的ALBUM_ID
和ALBUM_KEY
。
这是Google的错误还是故意设计?
我刚刚发布了TheoKlink在Google Play上推出的播放列表管理器的新版本,该版本包含查询构建器。创建您自己的查询(播放列表)可能有助于确定您的问题。或者,抓住/data/data/com.android.providers.media/databases/external.db,并使用sql工具在您的电脑上浏览音乐记录/数据库结构。我使用RazorSQL。路径名仅存在于_DATA字段中,所以我不希望看到多个ALBUM_ID – Theo 2014-10-09 15:46:06
只看了一下专辑表。 ALBUM_KEY字段可能是您的问题。它拥有无法读取的信息。只需使用ALBUM_ID而不是ALBUM_KEY。 “ALBUM_KEY”对于每条记录都不相同 – Theo 2014-10-09 15:55:50
“ALBUM_KEY字段可能是您的问题,它包含无法读取的信息,只需使用ALBUM_ID而不是ALBUM_KEY。对于每条记录,ALBUM_KEY都不相同” - 不,我的发现显示ALBUM_ID也不同相册分为多个文件夹,如原始文章中所述。在原始文章中给出的示例情况中,同一专辑将有三个不同的ALBUM_ID值。 – RestInPeace 2014-10-09 21:54:27