传递到 Azure 通知中心的通知消息未到达设备 (Android)

Posted

技术标签:

【中文标题】传递到 Azure 通知中心的通知消息未到达设备 (Android)【英文标题】:Notification messages delivered to the Azure Notification Hub are not reaching the device(Android) 【发布时间】:2018-06-01 10:07:37 【问题描述】:

我需要在发送消息时应该从 azure 通知中心返回的通知消息 ID。

我正在使用SendGcmNativeNotificationAsync 方法从应用后端发送消息。

NotificationOutcome outcome = await hub.SendGcmNativeNotificationAsync(notif, tags);

发送通知后,结果.NotificationId 属性为空或null。如何获取通知 ID?

虽然收到的outcome.Result[0].Outcome 有价值

“通知已成功发送到推送通知系统”

但通知不会发送到注册的设备。

我还在outcome.trackingid 中获得了一个跟踪 ID,如何使用它来跟踪邮件。

我正在使用免费版的 azure 门户。

请推荐

提前致谢!

【问题讨论】:

【参考方案1】:

我花了很长时间才弄清楚这一点,因为没有明确的记录,但答案很简单:当 Azure 定价层不是 S1(标准)时,NotificationOutcome.NotificationId 始终为空。

要找出问题的原因,请暂时切换到 S1 定价层。然后您将获得 NotificationId,Azure 将注册 Per Message Telemetry。

理论上,您应该能够通过使用 NotificationId 调用GetNotificationOutcomeDetailsAsync 来获取更多错误信息。最多可能需要 30 分钟 (!) 才能成功调用(如果您调用得太快,您会收到 MessagingEntityNotFoundException)。

不幸的是,即使消息的设备 ID 错误或过期,结果状态大多为 Completed。

Azure 中显示的通知中心指标中的结果是正确的,但我还没有找到可靠的方法来检索基于每个消息的结果。

别忘了切换回 F1(免费)定价层!

【讨论】:

以上是关于传递到 Azure 通知中心的通知消息未到达设备 (Android)的主要内容,如果未能解决你的问题,请参考以下文章

通知未显示在 Android 设备上。 (Azure 通知中心)

Azure 通知中心计费

Azure 移动服务的一些 Apple 推送通知未到达

Azure 通知中心 - 401 MissingToken:未找到授权标头

无法在 Android 上使用 Xamarin Azure 消息组件注册推送通知模板

如何将原始推送通知从 Azure 通知中心发送到 iOS 设备?