Android端末にメッセージをPushできるC2DMは結構使い道があるように感じますが、サーバーを立てる必要があるので、ちょっとだけ使うのには運用コスト(動いているかの監視とか)がかかってしまうのと、いいアイディアが浮かばなかったので、サンプルプログラムを動かして理解して遊んでいた程度でとどまっていましたが、今回「ぴーちく for Android」アプリにてC2DM機能を利用した「盛り上がり通知機能」を入れる機会があり、製品として真面目に作ってみました。

C2DMを実装する前に仕様のつめを行うわけですが、資料を造ろうにも、C2DMで送れるメッセージ数が、ドキュメントには書かれていませんし、ぐぐってもでてきませんでした。情報共有としてその事だけ書こうと思ったのですが、プロトタイプレベルではなく、製品レベルとしてC2DMを実際に組んでみたときに感じたことを少し書きたいと思います。

ぴーちく for Android とは

ピーチクとは、同じ時間に、同じ番組を、離れた場所で共有している人たちとリアルタイムにおしゃべりしながら、TV・ラジオ番組を視聴できるサービスなのですが、そのアンドロイドクライアントが、ピーチク for Androidです。といってもウエブの画面をそのまま持ってきたわけではなく、過去の盛り上がっている番組を色々と難しい計算して出したりとかもしてます。

盛り上がり機能

今回C2DMを利用した機能は、特定の番組について、沢山の人がつぶやくと、その番組は盛り上がっているとして、盛り上がってる番組あるよーとアンドロイド端末に通知する機能です。

盛り上がりを検知すると、C2DMメッセージを送り、通知バーに表示、そのときピーチククライアントを起動すると上の画面のように盛り上がっている番組をポップアップ表示させます。

C2DM制限

さて、C2DMでは色々な制限があります。これを事前にクライアントに伝えて問題ないかを確認する作業を行いました。

C2DMはラボ扱いです。Googleから正式リリースされているわけではありませんので、仕様変更、最悪なくなることも想定しなくてはいけないことを確認

C2DMは以下の状態では動作しない

  • Android OS 2.2未満
  • ネットワーク通信ができない状態(機内モードON、地下鉄等)
  • Google Accountがデバイスに設定されていない場合
  • Android Marketがインストールされてない場合
  • メニュー→設定→アカウントと同期の設定、「バックグラウンドデータ」チェックボックスがOFFになっている場合
  • 補足として、SIMが刺さっていなくてもWIFI接続されていれば動作します。

    特にラボのあたりの話は、非常に話しにくかったんですが、それでもOKという事で話が進みました。

    C2DMが送れるメッセージ数

    C2DMのサイトの一番下に、Limitationsが書かれており、メッセージサイズは1024バイトとか書かれています。メッセージサイズは、いいんですが、その後に、送ることができるメッセージサイズは、Googleが制限かけてるよーと記載されています。無制限に送りまくれるとサーバー付加やいたずらその他あるのでこの制限は理解できるのですが、通常どれぐらいのメッセージを送れるのかどこにも記載がなく、ぐぐっても出てきませんでしたので、メールにて問い合わせをしました。というか本番で使うときは教えてねと書いてありました。

    TAO:
    C2DM製品として使いたいよー、6月1日ぐらいからで、予想されるインストール数(50000)と1日にサーバから贈るメッセージ(20)ぐらいかなぁ、メッセージの制限解除お願いね

    Googleさん:
    100万/日メッセージ送れるようにしたよ。もっと増えるなら教えてね。えんじょい!

    そんな感じで非常に簡単に申請が終わりました。もっともっとメッセージ数を上げても大丈夫そうです。

    その他

    実際に仕事にならないと、あまり使わないAPIとか色々あります。仕事をしていく上でやったことやTips等はクライアントさんがいるとブログでは書きにくいのですが、ぴーちくさんから問題ないから書いていいですよという話を頂きました。ありがとうございます。というわけで書いたわけですが、Chrome to Phoneのプロトタイプレベルのコードから製品レベルに上げる時の変更点とか、久しぶりに書くと色々書きたくなって収集が付かなくなりました。かなり削って、こんな感じで今回の記事は終了です。

    ブログ内の関連する記事