将带有艺术家 (!) 的歌曲添加到 Android MediaStore

Adding Song with artist(!) to Android MediaStore

我一直在忙于尝试将新歌曲插入 Android 10 MediaStore 以获取音频...大部分都是开箱即用的,所以我可以播放这首歌,看看它标题等。但是,当我在 MediaStore 中查询 phone 上的所有音频时,这首歌出现了,但是列 MediaStore.Audio.Media.ARTIST 突然变成了 "<unknown>" 而不是我之前插入的字符串。我使用以下代码插入数据库:

val contentValues = ContentValues()
        contentValues.put(MediaStore.MediaColumns.DISPLAY_NAME, song.filename)
        contentValues.put(MediaStore.MediaColumns.TITLE, song.title)
        contentValues.put(ARTIST, song.interpret)
        contentValues.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mpeg")
        contentValues.put(MediaStore.MediaColumns.SIZE, song.length)
        contentValues.put(
            MediaStore.MediaColumns.DATE_ADDED,
            Calendar.getInstance().time.toString()
        )

...

val contentUri: Uri = Media.EXTERNAL_CONTENT_URI
uri = contentResolver.insert(contentUri, contentValues)

我现在怀疑我插入的艺术家必须在其他一些持有已知艺术家的 MediaStore-Table 中“已知”,或者 Android 扫描 phone 本身并可能发现新存储的 mp3 文件的 ID3 元数据中没有艺术家?或者您认为我的代码还有其他问题吗?


跟进: 我做了一些实验,确实,正如@Theo 所建议的那样,android 扫描会获取所有这些值,甚至会更正它们,以防我自己的插入与文件元数据不同。

不确定为什么要手动添加曲目,因为 android 扫描会负责填充所有必要的字段。下面是 table 文件(部分)的屏幕截图