如何在调用通知界面显示时以编程方式停止“前台”服务通知“噪声”

问题描述

我不知道为什么,但是由于某种原因,每当我在Android startForeground(...)及更高版本上使用notificationManagar.notify(...)oreo命令时,都会发出持续将近1的通知声音第二。

这不是一个问题,只要它第一次响起,但是每次我更新通知UI时都会响起(这再次通过执行notificationmanager.notify完成。

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

解决方法

由于通知通道是Oreo + API的必需通道,因此很可能与该通道有关。

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

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...