如何禁用通知中的声音(Android O或更高版本中的通知)

时间:2017-09-17 20:11:23

标签: android

我的应用程序要求是在玩家状态更改时更新媒体样式通知。之前完美地工作,触发并显示媒体类型通知,其中mediaSession 没有声音或振动。

现在出现问题:在根据Android O要求构建通知渠道时,我使用以下代码创建通知渠道。然后令人讨厌的问题是,每次媒体会话改变时,每个通知都会更新,在Android O中现在播放通知声音。

我想为每个新通知禁用声音,如果我没有设置声音,默认声音会触发,在这两个字段中传入null都不起作用。

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        NotificationChannel notificationChannel = new NotificationChannel(
                NOTIFICATION_CHANNEL_ID,
                "SimpleBakingApp Media Notification",
                NotificationManager.IMPORTANCE_LOW
        );

        // Configure the notification channel.
        notificationChannel.setDescription("Channel description");
        notificationChannel.setSound(null,null); // <-- Is there a way to disable sound? null doesn't work
        notificationChannel.enableLights(true);
        notificationChannel.setLightColor(Color.RED);
        notificationChannel.enableVibration(false);
        mNotificationManager.createNotificationChannel(notificationChannel);
    }

额外信息,可能相关

我的showNotification()(构建通知的方法)触发Player.EventListener回调中的玩家状态更改,我使用的是ExoPlayer v2。

1 个答案:

答案 0 :(得分:9)

您正在寻找的是setOnlyAlertOnce(boolean)

当您创建通知时,如果您只希望首次显示该通知(而不是对同一通知的后续更新)来触发声音和/或振动,则可以将其设置为true