带有无声通知的前台服务

问题描述 投票:1回答:2

语境:

我一直在使用谷歌的LocationUpdatesForegroundService示例项目来学习更多关于服务的知识。

我已经通过Github桌面下载了该项目,并在我的手机上运行,​​一切都很棒,项目完成了它的目的。

我的手机是Android 8.0.0,API 26

问题:

一旦应用程序终止,前台服务通知就会显示在状态栏上,一旦发生这种情况,我就会听到通知声音(默认声音)。但是,我希望通知保持沉默,就像在某些基于位置的应用程序中一样(例如:Life360

到目前为止我尝试过的:

以上都没有对我有用,如果有人能对这种情况有所了解,我真的很感激。

java android notifications foreground-service
2个回答
0
投票

解决方案是使用NotificationManager.IMPORTANCE_LOW并为其创建新通道。创建频道后,您无法更改重要性(嗯,您可以,但忽略新的重要性)。频道信息似乎由系统永久存储,并且只有在您卸载应用程序时才会删除创建的任何频道。您可以将频道删除为

nm.deleteNotificationChannel(nChannel.getId());

并重新创建它

nm.createNotificationChannel(nChannel);

通过堆栈溢出回答这里Disable sound from NotificationChannel


0
投票

mChannel.setSound(null,null)将执行此操作,但您需要卸载/重新安装该应用程序才能使其生效。或者将CHANNEL_ID更改为其他值也将重新创建具有更新设置的频道。

© www.soinside.com 2019 - 2024. All rights reserved.