如何在调用通知 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);
我不知道为什么,但出于某种原因,每当我在 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);