【问题标题】:GCM sent but not received alwaysGCM 已发送但始终未收到
【发布时间】:2016-06-03 17:11:25
【问题描述】:

我们开发了一个使用 gcm 发送推送通知的应用程序(Android 和 iOS)。 一切正常,但如果我或任何用户几天没有打开应用程序,推送通知将不起作用。 一旦我知道它不起作用,我就用我当前的令牌进行了测试,当我将下游消息发送到 gcm 时,服务响应我“成功”:1, 但消息未发送到我的设备。

文档中并不清楚,但我是否需要在我的应用程序上提供一项服务,我必须定期调用该服务

InstanceID instanceID = InstanceID.getInstance(MainActivity.this);
token = instanceID.getToken(getString(R.string.gcm_defaultSenderId),
        GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);

始终“准备就绪”???

同样的事情发生在 iOS 上

提前致谢。

【问题讨论】:

    标签: android ios google-cloud-messaging


    【解决方案1】:

    documentation 可以帮助你。 作为文件; delay_while_idle 和 time_to_live 参数可能会解决您的问题。请记住 GCM 服务器最多保存消息 4 周,time_to_live 以秒为单位。我们正在使用 ios 和 android 的 GCM,所有消息都传递到设备。有时 ios 会延迟收到通知

    【讨论】:

    • iOS 运行良好。问题出在Android系统中。我们检测到用户在 3 或 4 天内未运行应用程序(并且未请求令牌和注册)时,谷歌服务器响应成功 1 但未传递消息。我们继续做测试。
    • 感谢反馈,我也会检查这个场景
    • 我测试了一个应用程序,该应用程序自周五以来一直没有运行,并且通知已发送到设备。
    【解决方案2】:

    我们终于找到了发生的事情。 三星正在他们的安卓设备上安装一个名为 SmartManager 的应用程序。 当应用“优化”(3 天未使用)时,此应用会“杀死”GCM 套接字。

    我们做了什么?我们检测到 SmartManager 包,并警告用户这种行为。 我们在获取 gcm 令牌时也进行了指数退避。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-21
      • 2018-07-09
      • 1970-01-01
      • 2013-08-28
      • 1970-01-01
      • 2015-09-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多