推送通知在很长一段时间后到达某些设备

时间:2017-11-13 14:29:20

标签: android firebase push-notification google-cloud-messaging firebase-cloud-messaging

在Android上,我在某些设备上遇到了长时间推迟(几分钟,半小时)。好像设备已经睡着了(但不适用于WhatsApp)。即使在Pre-Marshmallow设备上也是如此。

过了一段时间他们没有回应推送

我创建了一个简单的应用程序(复制Google's Cloud Messaging client sample)。

尝试通过Firebase控制台发送推送,将优先级设置为HIGH并确保其正常工作。

  • 实验1:过了一会儿 - 试着发送。设备没有响应。

  • 实验2:尝试使用Telegram和WhatsApp。消息立即传递给两者。

  • 实验3:再次尝试我的测试应用程序。不工作。

  • 实验4:尝试从FCM降级到GCM,一直到C2DM。同样的事情,不工作。

有什么想法吗?

说清楚:

  • 令牌没问题。在大多数情况下它都有效。它过了一会儿就睡着了。
  • 它是一个棒棒糖设备,所以没有省电或节省电池
  • 我在有效负载上使用priority:high
  • 这不是服务器问题,因为我使用的是FCM编辑器,它只是一样。
  • 唤醒设备并不一定能解决问题。它只是在几分钟后开始接收通知,然后一切正常。
  • 其他应用程序,例如WhatsApp,无论如何都可以毫无问题地工作。
  • 我尝试过C2DM,GCM,FCM。我在C2DM接收器上使用打印输出。他们都表现得一样。
  • 我记录了所有内容。每一个活动,我得到的广播。我不应该在我应该的时候接受推动。

可能的线索:我的一些客户正在使用VMWare AirWatch。有人知道有关AirWatch和Push的任何问题吗?

1 个答案:

答案 0 :(得分:0)

这不是完整答案所以我无法将此问题标记为“已回答”。

我找到了一些名为Pushy的替代推送机制。 Stack Overflow中提到了很多内容。

优点:

  • 我在FCM和GCM失败的手机上进行了测试。 Pushy总是成功传递我的所有信息。
  • 它可以在没有启用Google Play服务的设备上运行
  • 这也是SERVICE_NOT_AVAILABLE问题的解决方法。
  • 他们有一个很好的友好控制台,就像在FCM中一样,你可以发送测试信息。
  • 当消息传递到Android设备时,您会收到反馈。
  • 具有FCM等主题,因此您可以向群组发送一条消息。

缺点:

  • 货币。它的成本。不是太多。上次我检查每个活跃用户每月0.5Cent。它可能很多,但我的应用程序是一个紧急应用程序,所以在我的情况下可用性是必须的。
  • 据我所知,没有像FCM那样的重试。我可能错了,但它没有处理FCM做的很多事情。它可能不会进行指数退避重试或通知消息A-la-Apple。我个人讨厌FCM行为,所以我对此很好。