GCM通知会在几周后停止运送

时间:2017-07-04 21:08:45

标签: android google-cloud-messaging pushsharp android-7.0-nougat android-push-notification

我们使用Android应用程序使用GCM向用户发送内容(技术文章,演练指南等)。 我们使用REST调用某些服务来监控两点的发送:

  1. 我们的服务器发送通知后立即。
  2. 我们的应用程序收到后立即。
  3. 我们感兴趣的是从发送的应用中收到的通知数量的比率。最近我们注意到,从2017年3月开始,看起来收到的通知报告较少,而且此比率下降。显然我们主要担心的是通知根本没有到达Android设备。

    一些注意事项:

    • 我们平均每7天发送一次通知。
    • 除了打开通知和阅读内容之外,我们的大多数用户很可能不会定期使用或启动应用。
    • 看起来这个下降开始于Android N的推出,并且自应用程序首次安装后的前两周变得越来越重要。
      意味着将Android M与N进行比较,在前两周,两个操作系统版本的收到通知的比率相同,但之后Android N的比率下降得更快。

    起初我们认为用户“阻止了我们应用的所有通知”(在Android N上更容易),但使用NotificationManagerCompat.areNotificationsEnabled()我们发现情况并非如此。
    然后,我们在Doze和Standby模式下测试了我们的应用行为,但我们无法找到证据证明它们是我们问题的原因。

    一些技术信息:

    • 我们使用GCM(不是FCM)。我们使用正常优先级的数据类型通知,我们会手动在通知托盘中显示通知。
    • 我们使用PushSharp从我们的服务器发送通知。如果我们收到“设备订阅已过期”,我们将不再向该设备发送通知。
    • 在我们的Android应用中,我们已根据Google的指南实施了GCM令牌更新。
    • 我们的GcmBroadcastReceiverWakefulBroadcastReceiverstartWakefulService在收到通知意图时使用GcmIntentService开始GcmIntentService
    • GcmBroadcastReceiver.completeWakefulIntent处理通知意图(以及其他内容使我上面提到的监控REST调用)并且一旦完成调用<label class="radio-inline"> <input type="radio" name="slect" id="optradio" value="oriente" checked>=Orienté </label> <label class="radio-inline"> <input type="radio" name="slect" id="optradio" value="Nonoriente">Non orienté </label>

    不分享代码,因为它非常直接,如果相关,将很乐意分享 我会感谢有人可以分享的任何见解或想法。

0 个答案:

没有答案