2

通过 GCM 向 Android 设备发送通知时,我收到以下响应:

设备订阅过期:PushSharp.Android.GcmPushService -> AppId

由于这个问题,我在手机上遇到了随机问题。例如,应用程序在接收器上接收到额外的回调。

有人可以提供有关此错误的更多详细信息吗?什么时候发生?它类似于设备ID注册吗?需要做什么来处理这种情况?

谢谢!

4

1 回答 1

5

如果您查看GcmPushChannel.cs的代码,您会看到DeviceSubscriptonExpiredException当 Google 返回NotRegistered错误或CanonicalRegistrationId.

由于您说您的应用程序在接收器上获得了额外的呼叫,因此您的数据库中可能有同一设备的多个注册 ID,并且当您向所有这些注册 ID 发送消息时,您的设备会收到多条消息。这可以解释为什么您会在 Google 的回复中获得规范的注册 ID。

我不确定 Push Sharp 如何处理规范注册 ID。从我读到的小代码中,它可能会触发一个事件,允许您从数据库中删除旧的注册 ID。

于 2013-09-24T23:06:00.303 回答