如何清除Android系统生成的可恢复音频通知?
解决Android系统自动生成音频媒体卡片无法取消的问题
彻底释放音频核心资源:系统自动生成的媒体卡片,本质是因为音频焦点或MediaSession还处于活跃状态。你需要做这两步:
- 调用
audioManager.abandonAudioFocus()放弃音频焦点,让系统明确知道你的应用不再需要播放音频。 - 销毁对应的
MediaSessionCompat实例:执行mediaSession.release(),这会直接切断系统与你的应用媒体会话的关联,从而移除通知卡片。
- 调用
修正媒体会话状态设置:如果用了MediaSession,别只暂停播放,要把状态设为
STATE_STOPPED,代码示例:val playbackState = PlaybackStateCompat.Builder() .setState(PlaybackStateCompat.STATE_STOPPED, 0, 0f) .build() mediaSession.setPlaybackState(playbackState)正确停止音频服务:如果你的音频播放是用前台服务实现的,除了调用
stopForeground(Service.STOP_FOREGROUND_REMOVE),一定要记得调用stopSelf()彻底停止服务,避免服务残留导致系统继续显示媒体卡片。Android 12+专属处理:安卓12及以上系统对媒体通知管控更严,要额外调用
mediaSession.isActive = false,明确告知系统当前媒体会话已失效。
内容的提问来源于stack exchange,提问作者Ray
相关产品推荐
相关产品推荐

