2012年12月11日
Android の GCM をプライベートな目的に使う
GCM (Google Cloud Messaging) は所定の端末へメッセージを送るための有用なしくみですが、何も一斉通知やソーシャルな用途ばかりではなくもちろんきわめて個人的な目的のためにも利用できます。今回はその方面でのアイディアをひとつざっくり形にしてみた例を紹介します。いろいろ応用もできるでしょう。
RemoteWand - Google Play
RemoteWand - github
(tanabe)
自分の端末を遠隔操作
Android 界隈は依然にぎやかで次々に新しい製品が発売されています。そのため複数の端末を持っている人も少なくないでしょう。まだまだ使える端末を遊ばせておくのはもったいないので、これを外出中の自宅の監視カメラとして使うことにしました。 端末を室内の対象物に向けて固定しておき、出先や仕事場から GCM 経由で端末へメッセージを送出、それをトリガーにアプリが撮影したスナップを Dropbox 経由で確認します。
シンプルな実装の割に結構役に立っています。 アプリ本体とソースコードを以下で公開しています。
RemoteWand - github
処理の流れ
端末の登録
遠隔操作の対象とする端末上で「RemoteWand」を起動して「登録」ボタンを押下すると GCM サーバへ端末が登録されトリガー発信用のフォームを含む HTML ファイルの添付された自分あてのメールが生成されます。
トリガーの送出〜撮影
PC やスマホのウェブブラウザに上記のフォームをロードし登録時に指定したパスワードを添えてサブミットするとアプリケーションサーバから GCM サーバへ要求が送出され GCM サーバが当該端末へ所定のメッセージをプッシュします。端末にインストールずみの RemoteWand はこのメッセージをトリガーにカメラで静止画の撮影を行います。Dropbox の「カメラアップロード」機能は自動的に撮影画像のアップロードを行うためあらかじめ端末にインストールしておけばリモートで簡単に写真を確認できます。
(tanabe)
トラックバックURL
この記事へのコメント
1. Posted by 藤井 2013年03月21日 13:11
これは、素晴らしいアイディアだと思います。
このアプリを改造させて頂ければ、いいのですが
実装の方法が、初心者の私では良くわかりません。
御教授いただくことは可能でしょうか?
このアプリを改造させて頂ければ、いいのですが
実装の方法が、初心者の私では良くわかりません。
御教授いただくことは可能でしょうか?
2. Posted by tanabe 2013年03月21日 13:41
藤井さん、お褒めのコメントをありがとうございます。ソースコードを公開していますのでまずはゆっくり様子をご覧になるのが最良だと思うのですが、GCM の概要や最初の TODO (APIキー等の取得等) については次のページがご参考になると思います。
<1. GCM をはじめよう> 「ソフトウェア技術ドキュメントを勝手に翻訳」様の記事:
http://www.techdoctranslator.com/android/guide/google/gcm/gs
なお、アプリケーションサーバにはいわゆる PaaS のひとつである「dotCloud」のサービスを利用しており、そこで使用しているサーバ側コードは github 上の server/dotCloud/ 配下にあります→ https://github.com/mkttanabe/RemoteWand/tree/master/server/dotCloud
<dotCloud - One home for all your apps> dotCloud 公式サイト
https://www.dotcloud.com/
何かをきっかけに新しいことを頑張って覚えるのは楽しいですね。良い展開をお祈りしています。
<1. GCM をはじめよう> 「ソフトウェア技術ドキュメントを勝手に翻訳」様の記事:
http://www.techdoctranslator.com/android/guide/google/gcm/gs
なお、アプリケーションサーバにはいわゆる PaaS のひとつである「dotCloud」のサービスを利用しており、そこで使用しているサーバ側コードは github 上の server/dotCloud/ 配下にあります→ https://github.com/mkttanabe/RemoteWand/tree/master/server/dotCloud
<dotCloud - One home for all your apps> dotCloud 公式サイト
https://www.dotcloud.com/
何かをきっかけに新しいことを頑張って覚えるのは楽しいですね。良い展開をお祈りしています。