如何在调用通知 UI 显示时以编程方式停止前台服务通知 'noise'

how to stop Foreground service notification 'noise' programmatically when invoking notification UI display

我不知道为什么,但出于某种原因,每当我在 android oreo 及以上使用 startForeground(...)notificationManagar.notify(...) 命令时,都会出现一个持续将近 1 秒的通知声音。

这不会是一个问题,如果它只是第一次响起,但是,每当我更新通知时它都会响起 UI(这再次通过 notificationManager.notify 完成)。

有什么方法可以在我的应用程序处于活动状态时禁用此声音吗?(因为,我不知道系统为什么需要它,但是,系统一定是为此设计的)

通知渠道是Oreo+ API的必经之路,那么这很有可能与渠道有关。

我认为您可以在创建前台服务通知通道时使用 NotificationManager.IMPORTANCE_LOW 来停止此声音。

NotificationChannel serviceChannel = new NotificationChannel(
                CHANNEL_ID,
                CHANNEL_NAME,
                NotificationManager.IMPORTANCE_LOW // <<<<<
        );

NotificationManager manager = getSystemService(NotificationManager.class);
manager.createNotificationChannel(serviceChannel);