2013-09-24 61 views
2

在通過GCM發送通知到Android設備我得到如下回應:的Android GCM服務器錯誤:設備訂閱過期

設備訂閱過期:PushSharp.Android.GcmPushService - >的AppId

由於這種問題我在手機上遇到隨機問題。例如,該應用程序在接收器上接收額外的回叫。

有人可以提供有關此錯誤的更多詳細信息嗎?它什麼時候發生?它是否與設備ID註冊類似?需要做些什麼來處理這種情況?

謝謝!

回答

5

如果您查看GcmPushChannel.cs的代碼,您會看到當Google返回NotRegistered錯誤或CanonicalRegistrationId時返回DeviceSubscriptonExpiredException

由於您說您的應用程序在接收器上獲得了額外的通話,因此您可能會在數據庫中爲同一設備註冊多個註冊ID,並且當您向所有設備發送消息時,設備會獲取多條消息。這可以解釋爲什麼您在Google的回覆中獲得了規範註冊ID。

我不確定Push Sharp如何處理Canonical註冊ID。從我閱讀的小代碼可能會觸發一個事件,允許您從數據庫中刪除舊的註冊ID。

+0

感謝您的回覆!我閱讀了代碼,我能夠理解爲什麼我的設備訂閱失敗。基本上這是發生在我註冊推送事件後通過它卸載應用程序。在這種情況下,我不得不停止向我的服務發送通知給特定的註冊ID。這解決了這個問題! – user1122549

相關問題