我目前正在针对 FCM 消息接收事件启动我的视频通话应用程序。它工作正常。但是在 Oreo 中,当 电池电量非常低 时,我没有收到任何 FCM 通知。但即使在那种情况下,Whatsapp 也能正常工作
我正在发送以下 JSON:
{
"to" : "XXXDecviceToken",
"data" : {
"callId" : "Call ID",
"displayName" : "Abhilash",
"room" : "2000"
},
"time_to_live" : 0
}
最佳答案
查看您的 JSON 请求:
{
"to" : "XXXDecviceToken",
"data" : {
"callId" : "Call ID",
"displayName" : "Abhilash",
"room" : "2000"
},
"time_to_live" : 0
}
有两个问题会导调用池电量不足时无法发送通知:
- 您没有指定优先级,因此数据消息的默认优先级是“正常”:
By default, notification messages are sent with high priority, and data messages are sent with normal priority. Normal priority optimizes the client app's battery consumption and should be used unless immediate delivery is required. For messages with normal priority, the app may receive the message with unspecified delay.
- 您将“time_to_live”指定为 0,这意味着如果 FCM 未能立即传递消息,则永远不会传递它(因为它不保存在 FCM 存储中)。
因此,将“正常”优先级与 0 的“time_to_live”相结合可能会阻止在电池电量不足时传递消息。
要尝试克服这个问题,您可以将优先级设置为“高”:
{
"to" : "XXXDecviceToken",
"data" : {
"callId" : "Call ID",
"displayName" : "Abhilash",
"room" : "2000"
},
"time_to_live" : 0,
"priority" : "high"
}
或将“time_to_live”更改为正值(至少有足够的时间让消息有机会在电池充电后发送)。
关于android - 当电池电量不足时,Android Oreo 不会收到 FCM 通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50097138/