繁体   English   中英

带有静默通知的前台服务

[英]Foreground Service with a Silent Notification

语境:

我一直在使用 Google 的LocationUpdatesForegroundService示例项目来了解有关服务的更多信息。

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

我的手机是 Android 8.0.0,API 26

问题:

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

到目前为止我尝试过的:

以上都不适合我,如果有人能对这种情况有所了解,我将不胜感激。

我的回答可能有点晚了,但是您是否尝试重新安装该应用程序? 这很简单,它可能会解决问题。

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

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

nm.deleteNotificationChannel(nChannel.getId());

并重新创建它

nm.createNotificationChannel(nChannel);

通过堆栈溢出应答此处禁用NotificationChannel中的声音

在LocationUpdatesForegroundService中,当服务是onUnbind时,它将调用'startForeground(NOTIFICATION_ID,getNotification())',然后通知将显示声音。 因此,您需要按照以下代码更改NotificationChannel

mChannel.setSound(null, null);
mChannel.setImportance(NotificationManager.IMPORTANCE_LOW);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM