chrometophone (9)
DeviceRegistrar.registerWithServer メソドから。ざっくりベースで言うと
- "com.google.ctp.UPDATE_UI" な Intent 生成
- makeRequest で "https://chrometophone.appspot.com/register" な URL に registration ID (C2DM からもらったソレ) を送付
- HTTP レスポンスで分岐
- 200 なら SharedPreferences に registration ID 格納して Intent に {"Status" : 1 (REGISTERED_STATUS)} をセット
- 400 なら Intent に {"Status" : 2 (AUTH_ERROR_STATUS)} をセット
- 上記以外なら Intent に {"Status" : 4 (ERROR_STATUS)} をセット
- 生成した Intent を sendBroadcast する
あと、AppEngineClient.PendingAuthException 以外でも Intent に {"Status" : 4 (ERROR_STATUS)} をセットして sendBroadcast してますね。
で、上記の BroadcastIntent は SetupActivity で受けてます。
あら?
最初の登録な Intent は誰が投げてるの? と言いつつ find|xargs grep で確認してたんですが、SetupActivity から発信されている模様。この Activity クラスもなかなかポイント高い模様。
中身では
- onResume メソドで C2DMessaging.register 呼び出している
- register という private なメソドからも呼び出している
- R.id.next という id を持ってるボタンがクリックされたら呼び出される模様
- なんとなくアカウントを ListView から選択して云々に見えるな
むむ
手元にあった N1 見てみたら Chrome to Phone なアプリが導入済みだったので起動したんですが、これって何て Activity なんでしょ。