通过Azure Notification Hub上的GCM发送高优先级消息

时间:2015-10-16 02:26:30

标签: android azure google-cloud-messaging azure-notificationhub

我正在使用AzureNotification Hub向我的Android应用程序发送GCM通知。我的问题是默认情况下SDK使用什么优先级来发送通知,这可以配置。基于我在Google网站https://developers.google.com/cloud-messaging/concept-options?hl=en上看到的内容,我可以简单地将优先级添加为有效负载的一部分。但是我不确定底层SDK如何处理它以及它是否默认添加优先级。这就是我做的。通知与下面的代码一起发送,但我想知道优先级值是否有任何影响。

var payload = new
{
priority="high",
data = new
{
message = new
{
model.Title,
model.Time,
model.Message,
model.NotificationId,
model.NotificationType,
model.SenderFacebookId,
model.TargetId,
model.TargetUserFacebookId
}
}
};

var json = JsonConvert.SerializeObject(payload);
await hub.SendGcmNativeNotificationAsync(json, Tag.UserDevice.Id);

2 个答案:

答案 0 :(得分:1)

您添加优先级(作为数据的兄弟)的方式应该有效。默认的GCM优先级是正常的,因此如果您没有指定优先级,则将其视为正常。这意味着在不同平台上略有不同,但一般情况下,高优先级消息将尽快发送,而普通优先级消息将在下一个最佳时间发送,具体取决于各种设备条件。

在Android GCM上,优先级可帮助设备决定何时在Doze模式下发送消息。需要用户操作的消息(如聊天消息)应该具有高优先级,Android会尽快提供这些消息。大多数消息(例如同步新服务器数据)应该被分配正常优先级,Android会尝试在设备的下一个最佳时间提供它们。

答案 1 :(得分:0)

优先级确实遵循Azure平台https://azure.microsoft.com/en-in/documentation/articles/notification-hubs-nodejs-how-to-use-notification-hubs/优先级值实际上是azure发送到Google服务器的http标头的一部分,实际上通知仍然通过Google服务器发送,Azure只是发送要捆绑到Google,可以在此处检查有效值https://msdn.microsoft.com/library/hh221551.aspx