Android 11下有声书App绑定MediaSession到MediaStyle后媒体通知不显示问题
Android 11 MediaStyle 媒体通知不展示排查修复方案
Android 11 对媒体通知与MediaSession的绑定校验做了严格收紧,你可以按以下优先级排查修复:
- MediaSession 未激活:这是最高发的问题,Android 11要求绑定到MediaStyle的MediaSession必须处于激活状态,你需要在获取Session实例后调用
mediaSession.setActive(true),未激活的Session会直接导致MediaStyle通知被系统丢弃。 - 通知渠道重要性不足:Android 11 通知渠道的优先级会覆盖Builder中设置的priority,你创建渠道时必须显式设置重要性为
NotificationManager.IMPORTANCE_HIGH,低于这个级别的渠道无法展示媒体类通知。 - PlaybackState 未设置:绑定到MediaStyle的MediaSession必须配置合法的播放状态,你需要至少调用一次以下代码:
PlaybackStateCompat state = new PlaybackStateCompat.Builder() .setState(PlaybackStateCompat.STATE_PLAYING, 0, 1f) .setActions(PlaybackStateCompat.ACTION_PLAY_PAUSE | PlaybackStateCompat.ACTION_REWIND | PlaybackStateCompat.ACTION_FAST_FORWARD) .build(); mediaSession.setPlaybackState(state); - 前台服务绑定缺失:如果你的应用在后台播放音频,Android 11要求媒体通知必须和前台服务绑定,展示通知的同时需要调用
startForeground(通知ID, notification),否则后台场景下通知会被系统自动回收。
你给出的原有代码逻辑本身没有语法问题,主要是缺失Android 11新增的强制校验项,按上述步骤排查即可解决问题。
内容的提问来源于stack exchange,提问作者Justice
相关产品推荐
相关产品推荐

