带有静默通知的前台服务

Doğ*_*mir 5 java notifications android foreground-service

语境:

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

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

我的手机是 Android 8.0.0,API 26

问题:

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

到目前为止我尝试过的:

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

小智 4

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

nm.deleteNotificationChannel(nChannel.getId());
Run Code Online (Sandbox Code Playgroud)

并重新创建它

nm.createNotificationChannel(nChannel);
Run Code Online (Sandbox Code Playgroud)

通过堆栈溢出在这里回答禁用来自NotificationChannel的声音