SMSを使ってできそうなこと
先日公開されたSMSの機能を触ったり他の人と話したりした。それで、できそうなことをいくつか思いついたのでメモ。
できそうなことリスト
SMS Driven Application
SMSを受けてアプリを起動することができるので、SMS駆動の仕組みが作れそうだ。- サーバー側からSMSを送信
- 端末側でSMSを受け取ってアプリを起動
- あとは好きに。
データ配信とか、逆に端末情報の定期バックアップとか、まあ色々できそうだな。
P2P通信
SMSは当然、端末同士でもやり取りができる。そう考えると、端末同士の通信手段としてSMSを使うことができるんじゃないかな。- 端末1でアプリ起動
- 端末1から端末2にSMS送信
- 端末2がSMSを受け取ってアプリを起動
- 端末1と端末2でSMSを使って通信
端末同士が通信するアプリを、サーバーを用意しなくても作れるのがいいね。
ミドルウェアあったほうが楽かも
ここまで書いて思ったけど、SMSを普通とは違う使い方をする。なので、呼び出されて起動するところとか、オブジェクトをシリアライズ化&復元する所とか、idつけて順番整理したりする所とか、同じになりそうなところが結構ある。このへんは別で作ってしまって、それを使うほうが良さそう。欠点としては、変な作り方すると致命的なセキュリティーホールになりそうなのが怖いかな。コンタクトリストに入っていないアドレスからの起動は無視したほうがいいかな。しかしなりすましできそうだし難しいか。
とここまで書いたけど、どうせSMSの送信がまだサポートされてないからなぁ。そんな状態のAPI使ってコンテストに参加したとして、どうにかなるんだか。
ミドルウェアと、サンプル実装として○×ゲームでも作って2つコンテストに応募する…とかかな。
[IT][Android] Android SMS Demo
以前書いたとおり、Androidのコンテストに参加すべくアプリを作ったりしている。で、先日のAndroid SDKのアップデートでSMSが追加されたということなので、早速アプリを作ってみた。
まあ、作ってみたというよりは、下記サイトのを動作確認したって感じだけどね。
Android - Listen for incoming SMS messages « Show me the code!
http://davanum.wordpress.com/2007/12/15/android-listen-for-incoming-sms-messages/
変えてる所と言えば、設定ファイルでactivityを消したらエラーになったので加えてるくらいかな。
で、受信のプログラムなんだけど、これってUIが用意されてないのかな?プログラムの中でメッセージを受け取って表示しているみたい。
ソースは、こんだけ。
- AndroidManifest.xml
- AndroidSMSDemo.java
package com.gmail.syunduel.demo.android.sms; import android.app.Activity; import android.os.Bundle; public class AndroidSMSDemo extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); } }
- SMSApp.java
package com.gmail.syunduel.demo.android.sms; import android.content.Context; import android.content.Intent; import android.content.IntentReceiver; import android.app.NotificationManager; import android.os.Bundle; import android.provider.Telephony; import android.util.Log; import android.telephony.gsm.SmsMessage; public class SMSApp extends IntentReceiver { private static final String LOG_TAG = "SMSApp"; /* package */ static final String ACTION = "android.provider.Telephony.SMS_RECEIVED"; @Override public void onReceiveIntent(Context context, Intent intent) { // TODO Auto-generated method stub if (intent.getAction().equals(ACTION)) { StringBuilder buf = new StringBuilder(); Bundle bundle = intent.getExtras(); if (bundle != null) { SmsMessage[] messages = Telephony.Sms.Intents .getMessagesFromIntent(intent); for (int i = 0; i < messages.length; i++) { SmsMessage message = messages[i]; buf.append("Received SMS from "); buf.append(message.getDisplayOriginatingAddress()); buf.append(" - "); buf.append(message.getDisplayMessageBody()); } } Log.i(LOG_TAG, "[SMSApp] onReceiveIntent: " + buf); NotificationManager nm = (NotificationManager) context .getSystemService(Context.NOTIFICATION_SERVICE); nm.notifyWithText(123, buf.toString(), NotificationManager.LENGTH_LONG, null); } } }
んで、エミュレータを起動した後にtelnetコマンドでSMSを送信すると、エミュレータの画面にメッセージが表示される。ポートは5554である。
telnet 5554 (telnet開始) sms send <電話番号> <メッセージ>
ちなみに日本語には対応していないようだ。native2asciiした文字を渡しても化け化け。
さて、SMSってメールみたいな画面があるのかと思ってたんだけど、どうしようかなぁ。
なんかいろいろ調子が悪いぞ
金曜日くらいから右肩がやけに痛くて、三日経っても治らない。
…まあそれは良いとして、Androidのコンテストに参加しようとして使ってるサイトが、なんか今日は調子が悪くて表示できない。仕方がないなぁ、取り敢えずレンタルサーバーだけでも借りておくか…と思ってBLOCKGROUP(http://www.blockgroup.jp/index.php)でレン鯖作ろうと思ったらサーバーエラー。なんかHDD足りないってエラーが出たw
これじゃ先にすすまないってんで、仕方がないからゲームでもやろうと思ったらサーバーメンテナンス中。一体どんだけなんだよw
取り敢えず、今日のところは寝よう。明日になったら色々治ってるといいな。
もしも、大空を自由自在に飛べたなら
もしも、大空を自由自在に飛べたなら ―――
正常な人間ならば誰もが一度は考える、超メジャーな妄想である。
そんな妄想を今までで一番満足させてくれたのが、セガサターンで発売されたNiGHTSだった。
NiGHTS Home
http://www.sonicteam.com/nights/index.html
『ナイツ』(正式名称:ナイツ NiGHTS into Dreams...)とは1996年7月5日、ソニックチームの製作でセガより発売されたセガサターン用ゲームソフト。
独特でファンタスティックな夢の世界を、心地良いメロディの中で縦横無尽に飛び回り、悪夢の支配から自分たちの夢の世界を守る物語。
地上のソニック、空のナイツという二本柱になると個人的に思ったほど良くできたゲームだった。しかし残念ながら続編の話は全く聞かないまま、11年もの月日が流れた。
ここまで読んだらわかると思うけど、
「NiGHTS」の続編が出るうぅぅぁぁああ!!
- 出版社/メーカー: セガ
- 発売日: 2007/12/13
- メディア: Video Game
- 購入: 6人 クリック: 59回
- この商品を含むブログ (106件) を見る
アンドロイドのコンテストに出ませんか?
面白そう。Eclipseを使ってJava言語で開発できるみたいだから、なにか作ってみたいな。うまくいって標準的なソフトにでもなろうもんなら、すごいことになりそうな気もするし。
でもちょっと一人じゃ心許ないので、誰か一緒にやってくれる人はいないかな?やってもいいって人がいたら、電話かメールかコメントか何かで教えてくださいな。
Android
http://code.google.com/android/index.html
米Googleは、Open Handset Alliance(OHA)が発表した携帯電話向けプラットフォーム「Android」(アンドロイド)向けソフトウェアを一般から募集する、「アンドロイド デベロッパー チャレンジ」を開催すると発表した。一般向けに公開された無償のソフトウェア開発キット(SDK)を利用して世界中から応募でき、賞金総額は1,000万ドル(約11億円)に上る。
「アンドロイド デベロッパー チャレンジ」では、Android向けのソフトウェアが広く募集される。一般向けに公開された、無償でダウンロードできるSDKのベータ版を利用してAndroid向けソフトの開発が行なえる。開発・応募したソフトウェアに関する知的所有権やそのほかの権利は、すべて開発者が保持できるとしている。
募集は第1期と第2期の2回に分けられており、第1期の募集期間は2008年1月2日〜3月3日。3月末には選考委員会により有望と認められた50のプロジェクトにそれぞれ2万5,000ドルが提供され、5月までにはその中からさらに選ばれた10のプロジェクトにそれぞれ27万5,000ドルが、別の10のプロジェクトにそれぞれ10万ドルが提供される。5月末には最優秀と認められたアプリケーションソフトが発表される予定。
第2期は2008年下期に開催される予定で、Androidを搭載した携帯電話が市場に投入された後に始まるとしている。
本日、Android アプリケーション開発環境 ( SDK ) の最初のバージョンを公開しました。
Android は、Linux kernel 2.6 上に構築された、堅牢なOS、さまざまなライブラリ、多彩なマルチメディアユーザインターフェースを提供するモバイル端末向けソフトウェアプラットフォームです。本日リリースされた Android SDK によって、Android プラットフォームで動作するアプリケーションを Java 言語で開発していただけるようになりました。Android を採用したモバイル端末はまだ発表されていませんが、Android 用アプリケーションの開発は今日から可能です。Android SDK にはデバイスエミュレータはもちろんのこと、デバッグツール、さまざまなドキュメント、Eclipseのプラグインなども含まれています。SDKの詳細およびダウンロードに関してはこちらをご覧ください。
さらに賞金総額1,000万ドルを超えるアプリケーションコンテスト「 Android デベロッパーチャレンジ 」を開催します。
Android 上で動作するステキなアプリケーションを開発された方に、Googleから総額1,000万ドル(日本円にして11億円超)の賞金が送られるコンテストです ! Android デベロッパーチャレンジは I および II の二回開催。今回はとりあえず I のみ募集します。