java - 带有静默通知的前台服务

标签 java android notifications foreground-service

上下文:

我一直在使用 Google 的 LocationUpdatesForegroundService示例项目以更多地了解服务。

我已经通过 Github 桌面下载了该项目并在我的手机上运行了它,一切都很好,该项目实现了它的预期目标。

我的手机是 Android 8.0.0,API 26

问题:

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

到目前为止我尝试了什么:

以上都不适合我,如果有人能阐明这种情况,我将不胜感激。

最佳答案

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

nm.deleteNotificationChannel(nChannel.getId());

并用

重新创建它
nm.createNotificationChannel(nChannel);

通过此处的堆栈溢出答案 Disable sound from NotificationChannel

关于java - 带有静默通知的前台服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54728368/

相关文章:

java - Intent 启动期间出现 RuntimeException

android - 如何使用 Android 通知 API 启用振动和灯光?

java - 如何在 Tomcat 正常关闭时获取线程中断/通知?

java - Install4j:如何检查 RemoteCallable 是否未提升运行

javascript - 如何使用 javascript 在 WebView 中操作本地文件中的 CSS

javascript - 当浏览器在后台运行时收到通知时使用 Firebase 播放声音

android - 如何在 Android 上监听通知栏的 onClick 事件?

java - 将 if 语句转换为 Java 中的条件运算符

java - 如何保持垂直滚动条始终位于jtable的末尾

javascript - mailto 不适用于 Android jellybean