GCMで「Canonical Registration ID」を出すには?
Google Cloud Messaging(以下GCM)で「Canonical Registration ID」(以下canonicalRegId)を出すにはどうしたらいいのか?
ドキュメントによると、「アプリケーションのアップデート」や「バックアップとリストア」などにより、GCMサーバーに同じデバイスで複数のRegistration ID(以下regId)が割り振られる場合があり、その場合にcanonicalRegIdが出るようなんだけど・・・
原文:GCM Advanced Topics | Android Developers
訳文:4. GCM 上級者向けトピックス - ソフトウェア技術ドキュメントを勝手に翻訳
「バックアップとリストア」というのはOSのことだろうと思うので簡単に試すことはできない。
一方、開発中に「アプリケーションのアップデート」は何度もしているが、regIdが変わったことはない。アプリをアンインストールして再インストールした時もregIdが変わったことはない。
じゃあ、いつ変わるのか?
アプリでGCMRegistrar.unregister()した後、GCMRegistrar.register()するとregIdが変わる。
その後、コンテンツサーバー側で次のようにするとcanonicalRegIdが取れる。
琴線探査: GCMで「Canonical Registration ID」が取れるようになったら古い「Registration ID」は即無効になるのか?
ドキュメントによると、「アプリケーションのアップデート」や「バックアップとリストア」などにより、GCMサーバーに同じデバイスで複数のRegistration ID(以下regId)が割り振られる場合があり、その場合にcanonicalRegIdが出るようなんだけど・・・
原文:GCM Advanced Topics | Android Developers
訳文:4. GCM 上級者向けトピックス - ソフトウェア技術ドキュメントを勝手に翻訳
「バックアップとリストア」というのはOSのことだろうと思うので簡単に試すことはできない。
一方、開発中に「アプリケーションのアップデート」は何度もしているが、regIdが変わったことはない。アプリをアンインストールして再インストールした時もregIdが変わったことはない。
じゃあ、いつ変わるのか?
アプリでGCMRegistrar.unregister()した後、GCMRegistrar.register()するとregIdが変わる。
その後、コンテンツサーバー側で次のようにするとcanonicalRegIdが取れる。
Result result = sender.send(message, regId, 5); String canonicalRegId = result.getCanonicalRegistrationId();
琴線探査: GCMで「Canonical Registration ID」が取れるようになったら古い「Registration ID」は即無効になるのか?
コメント
コメントを投稿