Androidアプリのプッシュ通知を送信するためのSNS設定が完了しました。次のようにステップのプロセスによって、ステップは以下のとおりです。Amazon SNSでAndroidアプリをアンインストールする
アプリが起動するたびに、それは
register
呼び出しを行うことにより、GCMの登録IDを生成します。コードスニペットは、以下である:Globals.GCM_TOKENアプリ用FCM登録をしながら取得したアプリIDであるprivate String registerOnGCM(){ try { GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(getBaseContext()); String token = gcm.register(Globals.GCM_TOKEN); return token; } catch (IOException e) { Log.e(TAG, "failed to complete token refresh process"); } return null; }
。
アプリケーションは、私たちのバックエンドサーバーを呼び出し、この登録IDを渡します。
バックエンドサーバーは、この登録IDが新しいかどうかをチェックします。新規の場合は、この登録IDを使用して新しいSNSエンドポイントを作成し、そのユーザー用に作成されたトピックに新しいエンドポイントを登録します。また、このデータはすべて将来の参照のためにデータベースに保存されています。
再インストール後、GCM登録コールは別の登録IDを返し、バックエンドに送信します。バックエンドはそれを新しいデバイスとして検出してSNSに登録し、デバイスは同じでも複数のSNSエンドポイントで終了します。このユーザのトピックに通知をプッシュすると、同じデバイスが2つのプッシュ通知を受信します。おそらく古いエンドポイントがまだ生きているので、それは無効にされているはずです。
私の質問:上記のテストケースでは、アンドロイドデバイスにプッシュ通知が1回だけ送信されるようにする方法。