2

GCM 経由で Android デバイスに通知を送信すると、次の応答が返されます。

デバイス サブスクリプションの有効期限が切れました: PushSharp.Android.GcmPushService -> AppId

この問題により、電話でランダムな問題が発生します。たとえば、アプリは受信側で余分なコールバックを受け取ります。

このエラーの詳細を教えてください。それはいつ発生しますか?デバイスIDの登録に似ていますか?この状況に対処するために何をする必要がありますか?

ありがとう!

4

1 に答える 1

5

GcmPushChannel.csのコードを見るとDeviceSubscriptonExpiredException、Google がNotRegisteredエラーまたは.cs を返したときに が返されていることがわかりますCanonicalRegistrationId

アプリがレシーバーで余分な呼び出しを受けると言っているので、DB に同じデバイスの複数の登録 ID があり、それらすべてにメッセージを送信すると、デバイスが複数のメッセージを受け取る可能性があります。これにより、Google からの応答で正規登録 ID を取得する理由が説明されます。

Push Sharp が Canonical Registration ID をどのように処理するかはわかりません。私が読んだ小さなコードから、DB から古い登録 ID を削除できるイベントが発生する可能性があります。

于 2013-09-24T23:06:00.303 に答える