Android FCM 推送无法接收的原因

为什么这个客户收不到推送,

怎么实现我不管,

明天上Hotfix

 

首先讲一下什么样的手机以及状态可以接收 FCM 推送, 以及不同的数据格式会走哪条通道

格式一 

{
    "to": "cvRJ6BXFTQiyB9W5pqcx-E:APA91bE",
    "notification": {
        "title":       "Pickup Offer!",
        "body":        "Address detail",
        "click_action": "yourapp://pickup"
    }

}

格式二 

{  
   "to":"dk_FO2LEdlI:APA0",
   "data":{  
         	"title":"Pickup Offer!",
            "body":"Address detail",
            "click_action":"yourapp://pickup",
            "event":"PICKUP",
            "address":"Address detail"
   }
}

格式三 

{  
   "to":"dk_FO2LEdlI:APA0",
   "notification": {
        "title":       "Pickup Offer!",
        "body":        "Address detail",
        "click_action": "yourapp://pickup"
   },
   "data":{  
         	"title":"Pickup Offer!",
            "body":"Address detail",
            "click_action":"yourapp://pickup",
            "event":"PICKUP",
            "address":"Address detail"
   }
}

 

一. 国外原生系统

无论手机和应用处于什么状态,大概率会收到推送, 因为 google 服务是原装的,随系统启动, 所以 Google Service 可以长期后台运行,并且在收到消息后会唤起应用注册的广播或服务,从而唤起应用。

但是不同的推送格式会走不同的通道,在应用运行状态下,百分百会走

FirebaseMessagingService

但是在应用被 Kill 后, 如果接收到格式一的推送, 系统会绕过你的应用直接创建推送,并通过 click_action 来实现点击跳转。

而如果接收到格式二,格式三的推送, 则会走

MyFirebaseMessagingService


二. 国内定制系统

在翻墙的环境下,且应用运行状态下, 大概率会收到推送,但在应用被 Kill 后,某些手机版本可以收到格式一的推送。

而格式二三 的推送, 则无法送达的,因为FCM service 被干掉了。

 

三. 推送率

以上所述的可接收推送都是大概率,但千万别拍着胸脯向PM保证绝对没问题,因为还有很多其它因素导致无法接收,让我们列举一下:

1 网络堵塞,或FCM服务器堵塞, 早上发的消息, 晚上才到

2 应用被杀死时无法接受消息,因为广播或Service无法启动, 打开应用时,会疯狂推送离线消息, 是因为缓存机制,默认4个周的缓存,证据在此

3 优先级过低, 不予打扰用户,证据在此

4 电源管理导致,证据在此,安卓官方三星官方, PushWoosh

 

总结

能不能收到推送,全看你的网络状况以及FCM服务有没有被干掉或禁止, 如果被干掉了, 还要看系统会不会处理显示格式一的推送。

有些手机真的邪乎, 就算是国外版的某些版本三星,也会在杀死App后,不再唤醒App所注册的推送广播或服务

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值