通知 setStyle 在 sdk30 中不起作用

Notification setStyle not working in sdk30

MediaSessionCompat mediaSessionCompat = new MediaSessionCompat(ctx, "tag");

当我设置.style() 时,通知没有输出。 在 mediaSessionCompat 中除了设置上下文和标签之外还有什么需要做的吗?

如果您在通知上使用 setStyle 方法,则需要为 MediaSession 提供元数据。

private void updateMetadata () {
mediaSession.setMetadata(new MediaMetadataCompat.Builder()
                                     .putString(MediaMetadataCompat.METADATA_KEY_ARTIST, song.getArtistTitle())
                                     .putString(MediaMetadataCompat.METADATA_KEY_ALBUM_ARTIST, song.getArtistTitle())
                                     .putString(MediaMetadataCompat.METADATA_KEY_ALBUM, song.getAlbumTitle())
                                     .putString(MediaMetadataCompat.METADATA_KEY_TITLE, song.getTitle())
                                     .putLong(MediaMetadataCompat.METADATA_KEY_DURATION, song.getDuration())
                                     .putLong(MediaMetadataCompat.METADATA_KEY_TRACK_NUMBER, getPosition())
                                     .putBitmap(MediaMetadataCompat.METADATA_KEY_ALBUM_ART, null)
                                     .build());
}

不要忘记调用此方法,例如当您的数据更改时。我不知道你是如何处理的,所以我无法为它提供一个正确的位置。我会说当歌曲改变时你更新通知的同一个地方,这只是一个建议。