我们有一个Wear OS应用程序,它严重依赖Firebase消息。我们仅从 pyfcm 发送数据消息,并在 onMessageReceived()
内处理它们。所有消息都具有高优先级。这似乎在一段时间内正常工作,这有所不同 - 可能在 10 分钟到几个小时之间。
一段时间后,我们将停止接收消息。从文档中我知道,即使在 Doze 中,高 prio 数据消息也应该唤醒设备 - 不幸的是,这并没有发生。
我们认为正在发生的事情是,由于交互模式较低,FCM 正在降低通知的优先级。问题是他的核心功能,我们无法改变这一点。
知道我们如何克服这个问题吗?
认为问题在于 FCM 正在降低您的消息的优先级。问题可能在于 Wear OS 在低电耗模式下如何处理您的应用。
安卓智能手机中也存在类似的问题。当用户从系统托盘中滑动应用时,他们不会收到来自 FCM 的推送通知,因为由于品牌特定的省电原因,处理推送通知所需的服务(消息服务和实例 IDService(未在后台运行。要了解智能手机上的问题,请参阅以下内容:Firebase Github问题。
可能在您的应用程序在后台运行一段时间后,它会作系统杀死以节省电池,因此服务不再运行并且不再收到通知。
无论如何,如果没有关于应用程序如何工作的进一步解释,也没有任何代码,我只能猜测。