You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android 11三星S10/A20锁屏不显示Notification媒体控件如何修复

适配方案如下:

  • 优先使用AndroidX兼容包的MediaStyle,不要调用framework层的原生MediaStyle类,正确导包路径为:

    import androidx.media.app.NotificationCompat.MediaStyle
    

    三星One UI 3.x(对应Android 11版本)对原生MediaStyle的适配存在缺陷,用兼容包版本可以规避90%以上的样式兼容问题。

  • 校验MediaSession的状态配置
    三星锁屏对媒体通知的校验规则比原生严格很多,必须保证绑定的MediaSession满足以下要求:

    • 已经调用mediaSession.isActive = true激活会话
    • 已经通过setPlaybackState()上报了有效的播放状态(至少包含STATE_PLAYING/STATE_PAUSED状态)
    • 会话token没有被回收或者置空
  • 修正setShowActionsInCompactView的入参合法性
    三星对传入的动作索引会做强校验,如果索引超过你实际添加到Notification的Action数量,会直接导致整个媒体样式失效,建议增加合法性判断:

    setStyle(
        MediaStyle()
            .setMediaSession(sessionToken)
            .apply {
                val validIndices = actionsToShow.filter { it in 0 until builder.mActions.size }
                if (validIndices.isNotEmpty()) {
                    setShowActionsInCompactView(*validIndices.toIntArray())
                }
            }
    )
    
  • 额外增加三星专属适配参数
    构建通知时额外添加优先级和分类配置,提升通知在三星系统里的展示权限:

    builder
        .setPriority(NotificationCompat.PRIORITY_HIGH)
        .setCategory(NotificationCompat.CATEGORY_TRANSPORT)
    

如果以上配置都完成还是无法显示,你可以直接去掉setShowActionsInCompactView的调用,三星Android 11会自动识别媒体通知的通用操作,不需要手动指定紧凑视图动作,也能同时保留通知样式和锁屏控件。
测试时建议先卸载原有应用再安装,避免系统通知缓存导致的异常。

内容的提问来源于stack exchange,提问作者zerstoer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 16:39:04