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

Android SDK30下Notification调用setStyle失效,MediaSessionCompat需额外配置吗

MediaSessionCompat 必要额外配置说明

仅传入context和tag初始化MediaSessionCompat不足以支撑媒体通知正常渲染,还需要完成以下配置:

  • 激活媒体会话
    初始化完成后必须调用激活方法,否则通知样式无法读取会话信息:
    mediaSessionCompat.setActive(true);
    
  • 配置播放状态
    必须设置PlaybackStateCompat指定当前播放状态、支持的操作、播放进度等信息,供通知样式渲染控制按钮:
    PlaybackStateCompat playbackState = new PlaybackStateCompat.Builder()
            // 声明该媒体会话支持的控制操作
            .setActions(PlaybackStateCompat.ACTION_PLAY | PlaybackStateCompat.ACTION_PAUSE | PlaybackStateCompat.ACTION_SKIP_TO_NEXT)
            // 三个参数分别为:当前播放状态、当前播放进度、播放速度
            .setState(PlaybackStateCompat.STATE_PLAYING, 0, 1f)
            .build();
    mediaSessionCompat.setPlaybackState(playbackState);
    
  • 配置媒体元数据
    必须设置MediaMetadataCompat存储当前播放内容的标题、歌手、封面等信息,供通知样式展示:
    MediaMetadataCompat metadata = new MediaMetadataCompat.Builder()
            .putString(MediaMetadataCompat.METADATA_KEY_TITLE, "播放内容标题")
            .putString(MediaMetadataCompat.METADATA_KEY_ARTIST, "创作者信息")
            .putBitmap(MediaMetadataCompat.METADATA_KEY_ALBUM_ART, 专辑封面Bitmap实例)
            .build();
    mediaSessionCompat.setMetadata(metadata);
    
  • 绑定会话到通知样式
    构造MediaStyle时必须传入当前MediaSessionCompat的token,完成关联:
    Notification notification = new NotificationCompat.Builder(context, 你的通知渠道ID)
            // 必须配置通知基础项:smallIcon、contentTitle等,缺项会导致通知无法显示
            .setStyle(new androidx.media.app.NotificationCompat.MediaStyle()
                    .setMediaSession(mediaSessionCompat.getSessionToken())
                    // 可选配置:紧凑模式下显示的操作按钮位置
                    .setShowActionsInCompactView(0, 1, 2))
            .build();
    
  • 可选:设置事件回调
    如果需要响应通知上的媒体控制按钮点击,需要设置回调监听:
    mediaSessionCompat.setCallback(new MediaSessionCompat.Callback() {
        // 按需重写onPlay、onPause、onSkipToNext等对应操作的方法
    });
    

额外注意事项

  • Android 8.0及以上系统必须先创建合法的通知渠道,否则通知会直接被系统拦截无法显示
  • Android 9.0及以上系统使用前台服务承载媒体播放时,需要申请android.permission.FOREGROUND_SERVICE权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:36:01