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