我目前正在启动我的视频通话应用程序,该应用程序已接收到的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
}
有两个问题可以阻止您的通知在电池较低时传递:
- 您没有指定优先级,因此数据消息的默认优先级为"正常":
默认情况下,以高优先级发送通知消息,数据消息以正常优先级发送。正常优先级优化了客户端应用程序的电池消耗,除非需要立即交付,否则应使用。对于具有正常优先级的消息,该应用程序可能会接收带有未指定延迟的消息。
- 您指定了0的" time_to_live",这意味着,如果FCM无法立即传递消息,它将永远不会传递(因为它没有保存在FCM存储中(。
因此,将"正常"优先级与" time_to_live"为0组合可能会在电池低时阻止消息传递。
要尝试克服这个问题,您可以将优先级设置为"高":
{
"to" : "XXXDecviceToken",
"data" : {
"callId" : "Call ID",
"displayName" : "Abhilash",
"room" : "2000"
},
"time_to_live" : 0,
"priority" : "high"
}
或将" Time_to_live"更改为正值(至少有足够的时间使消息有机会在电池重新充电后传递(。