电池较低时,未在Android Oreo中收到FCM通知



我目前正在启动我的视频通话应用程序,该应用程序已接收到的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
}

有两个问题可以阻止您的通知在电池较低时传递:

  1. 您没有指定优先级,因此数据消息的默认优先级为"正常":

默认情况下,以高优先级发送通知消息,数据消息正常优先级发送。正常优先级优化了客户端应用程序的电池消耗,除非需要立即交付,否则应使用。对于具有正常优先级的消息,该应用程序可能会接收带有未指定延迟的消息。

  1. 您指定了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"更改为正值(至少有足够的时间使消息有机会在电池重新充电后传递(。

最新更新