2012-07-21 23 views
43

C2DM登録の有効期限が切れていて、定期的に登録IDを更新するはずです。これはGCMのケースですか? Android GCMガイド(下記参照)の次のコードを見ると、一度やり直す必要はないようですが、明示的にどこにでも書かれていないので、確認したいだけです。GCM登録IDの有効期限はありますか?

final String regId = GCMRegistrar.getRegistrationId(this); 
if (regId.equals("")) { 
    GCMRegistrar.register(this, SENDER_ID); 
} else { 
    Log.v(TAG, "Already registered"); 
} 
+0

類似:http://stackoverflow.com/questions/16838654/handling-registration-id-changes-in-google-cloud-messaging-on-android – trante

答えて

41

編集:この答えはWAY OUT OF DATEですが、私は現在の動作が


私は自分自身の答えを見つけたIS WHAT見当がつかない。明示的にすべての時間を再登録する必要はありません。just once according to the example in the docs。また

GCMとC2DMの以前のバージョンとは異なり、Google自身は現在、登録自体をリフレッシュしません。あなたが最初の登録から登録IDを持っていたら、あなたは行ってもいいです、1ケース用除いては、アプリケーションが更新されると

、それはその既存の を無効にする必要があります:新しいバージョン(この場合は、上記のリンクでの例で扱われる)へのユーザーのアップグレードがするとき、あなたはまだ再登録する必要があります新しいバージョンで動作することが保証されていないため、登録ID。 アプリケーションが で更新されたときに呼び出されるライフサイクルメソッドがないため、この検証を実現する最も良い方法は、登録IDが格納されるときに現在のアプリケーションバージョンを保存することです。

+0

しかし、どのように登録IDを生成するmannn ????? –

+1

@AndroidKiller:docs:http://developer.android.com/google/gcm/index.html –

+0

ちょっと@MohamedHafez。あなたの最初の段落は、GCMのドキュメントではなく、GCDMには当てはまらないということです(私は信じています)。これはあなたの答えを少し誤解させる。 Thx – AndroidGecko

10

最終的にはリフレッシュされると思います。公式ドキュメントから:

既存の登録IDを含め、多くのシナリオで有効であるのをやめることがあります。 をアプリケーションが手動でcom.google.android.c2dm.intent.UNREGISTERの意図を発行することにより、登録を解除した場合。 アプリケーションが自動的に登録解除された場合、ユーザーがアプリケーションをアンインストールした場合に発生する可能性がありますが、保証はできません。 登録IDが期限切れの場合。 Googleは登録IDを更新することがあります。 これらのすべてのケースでは、この登録IDをサードパーティ製のサーバーから削除し、メッセージの送信に使用を停止する必要があります。 エラーコードがNotRegisteredの場合に発生します。

これはエラー未登録デバイスとJSONレスポンスを返すあなたのサードパーティ製サーバからGCMへの要求に発生する可能性があります。

これが起こると、対応するIDを更新する必要があります。

http://developer.android.com/guide/google/gcm/gcm.html

+0

だから、トークンがある場合だけをチェックする保存です私の 'RegistentIntentService'で変更されましたか?トークンを共有設定に保存し、毎回それが変更されているかどうかを確認することができます。 – Zapnologica

関連する問題