https://developers.google.comのガイドラインを使用して、プロジェクトに GCM を実装しました。
私が取った手順は次のとおりです。
デバイストークンを受け取る場合:
->
GCMRegistrationIntentService
拡張IntentService
し、私の mainActivity から開始されるクラス。-> このサービスで使用したもの:
InstanceID instanceID = InstanceID.getInstance(getApplicationContext()); token = instanceID.getToken(AppConstants.SENDER_ID, GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);
トークンを正常に受け取りました。
メイン アクティビティの LocalBroadcastListener を使用して、ステップ 1 で生成されたトークンを取得し、それを共有設定に保存します (メッセージ サーバーにも送信します)。
古いトークンが期限切れになった場合にトークンを取得するために
GCMTokenRefreshListenerService
拡張するクラス。InstanceIDListenerService
->これで私はに電話をかけまし
GCMRegistrationIntentService
たonTokenRefresh()
今私の質問は次のとおりです。
- どの場合に GCMTokenRefreshListenerService が呼び出されますか?
- インスタンス ID とは何ですか? instanceID のライフサイクルとは何ですか?
以下を使用してターミナルからサービスを実行しました。
./adb shell am startservice -a com.google.android.gms.iid.InstanceID --es "CMD" "RST" -n package.name/service.name.
毎回新しいトークンをくれました。この新しく生成されたトークンを共有設定に保存するにはどうすればよいですか?
このサービスから新しいトークンを受け取ると、トークンが変更されているため通知が届きません。トークンを更新するには、アプリを開く必要があります。このトークンを更新するには?
- アプリを開いてトークンを取得するたびに GCM を呼び出す必要がありますか?