android - 在 MediaStyle 通知中禁用或隐藏搜索栏

标签 android android-mediaplayer android-notifications

尝试构建一个实时流媒体播放应用程序,28 及以下 sdk 中的媒体样式通知在没有任何搜索栏的情况下看起来不错,但在 Android 10(SDK 29)中运行相同的应用程序时,通知显示了额外的搜索栏,而我没有不需要,因为流是实时的,并且我正在使用默认的 exoplayer(exo 版本 2.10.8)行为进行缓存。

如何禁用或隐藏搜索栏?

尝试在通知生成器中进行以下设置:

.setProgress(0,0,true)

下面的通知 fragment :

    Notification notification = new Notification.Builder(this,Constant.CHANNEL_ID)
            .setSmallIcon(R.drawable.ic_logo)
            .setContentTitle(title)
            .setContentText(message)
            .setLargeIcon(artwork)
            .addAction(new Notification.Action.Builder(
                    Icon.createWithResource(getApplicationContext(),playPauseResourceId),
                    "Play/Pause",
                    playPausePendingIntent).build())
            .addAction(new Notification.Action.Builder(
                    Icon.createWithResource(getApplicationContext(),R.drawable.exo_icon_stop),
                    "Play/Pause",
                    stopPendingIntent).build())
            .setStyle(new Notification.MediaStyle().setShowActionsInCompactView(0).setMediaSession(mediaSession.getSessionToken()))
            .setSubText(subText)
            .setContentIntent(pendingActivityIntent)
            .setVisibility(Notification.VISIBILITY_PUBLIC)
            .setProgress(0,0,true)
            .build();

截图:

enter image description here

最佳答案

我也遇到了这个问题,但我使用的是NotificationCompat而不是exoplayer。
我按照Squti的回答找到了隐藏NotificationCompat的搜索栏的解决方案。

val mediaSession = MediaSessionCompat(context, "your tag")

//These two lines work
val mediaMetadata = MediaMetadata.Builder().putLong(MediaMetadata.METADATA_KEY_DURATION, -1L).build()
mediaSession.setMetadata(MediaMetadataCompat.fromMediaMetadata(mediaMetadata))

val token = mediaSession.sessionToken

val mBuilder = NotificationCompat.Builder(context, channelId)
    .setStyle(androidx.media.app.NotificationCompat.MediaStyle()
            .setMediaSession(token))

关于android - 在 MediaStyle 通知中禁用或隐藏搜索栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59443133/

相关文章:

android - 使用 AssetFileDescriptor 播放音频不起作用

java - 状态栏中的通知图标在少数 Android 设备中没有变化

android - windowBackground 上的居中图像与膨胀布局上的图像不同

android - 如何在Android中无间隙播放声音循环

android - 单体机器人 : What should I do after I catch an unhandled exception?

java - 如何从 R.raw 设置 Sound RingtoneManager

java - 如果警报日期等于当前日期,我想创建通知,并且通知将创建从警报日期到疫苗日期的所有日期

java - 如何借助NotificationListnerService在通知中按下“标记为已读”按钮?

java - 以编程方式编辑自定义 View

java - Android:如何禁用选项卡选择时的默认弹出 TabLayout 动画