将Firebase主题消息与Android通知通道一起使用

Tho*_*mas 6 android android-notifications firebase firebase-cloud-messaging android-8.0-oreo

我有一个应用程序,它可以接收不同的通知类型(例如NewsPodcast).目前,它有两个简单的开关,用户可以启用和禁用这些不同的通知类型.它只需订阅和取消订阅相应的Firebase主题即可.明显的优点是设备只接收用户想要的通知,而不必在本地过滤它们=>电池和数据有效.

问题是,我想将它与新的Android O通知渠道结合起来.我是否正确地假设唯一的方法是只订阅Firebase中的所有主题并让用户在Android设置中手动禁用不需要的主题?

有没有更好的方法可以节省更多的电池寿命(通过不接收所有通知)?

AL.*_*AL. 4

通知通道(仅 Android O 需要的功能——大概是从前的版本)是(类似)一个参数,您(通常)使用它来对本地构建的通知进行排序/管理。--

Android O 引入了通知通道,以提供统一的系统来帮助用户管理通知。

它不一定会禁止接收您不想接收的通知,但(据我所知)在没有通知通道的情况下构建的通知不会在 Android O 中显示/显示(未收到!= 未显示)。即您的设备实际上可能仍在接收通知,但只是不显示。

对于通过主题发送的通知,只要订阅了相应的注册令牌,客户端就会进行相应的处理,这是预期的行为。

话虽如此,您已经实现的内容(如果我正确理解您的帖子——基于某种开关订阅和取消订阅主题)已经是最简单的了。

如果您想完全禁用通知,您可以致电deleteInstanceId()请参阅此处此处我的答案以获取一些其他信息。

  • 因此,似乎最简单的事情就是构建一个通知通道,并仍然让用户在我的应用程序中选择单独的通知类别。其他一切都会导致潜在的令人困惑的用户界面。感谢您的回答! (4认同)