au 携帯電話と GPS と ALPSLAB slide と - ロジック編 - #
http://www.alpslab.jp/slide.html
先日「プログラム作ってる時にはまりどころがあったのだが、それは別項目で。」と言って
放置してたので、そろそろ書いておく。
au の携帯電話を使った位置取得方法については、「ここギコ! 」の「EZナビでの位置取得方法 」が詳しいのでそちらを参照されたし。
GPSに位置情報取得依頼するためには「device:gpsone?hogehoge」にアクセスするわけだが、これは直接 URL 入力しようとしてもブックマークに登録しようとしても「http:// で始めなされ」と断られてしまう。なのでまずやったのがこれ。
Phase.1 単発取得 #
- 携帯電話から wml ファイルにアクセス。リンクをクリックする
- gpsone リンク。返り先は、返り値を表示したり保存したりする CGI にしておく
- CGI で、受け取った値を表示したり保存したり
手動トラックロガーとしてはこれで成功。でも、自動取得したいので、Phase.2 にすすむ
Phase.2 連続取得 #
- 携帯電話から wmlファイルにアクセス。リンクをクリックする
- gpsone リンク。返り先は、返り値を表示したり保存したりする CGI にしておく
- CGI で、受け取った値を表示したり保存したり。60秒後、2. に redirect
これでいけると思っていたのだが、3. で redirect するまではよくて、2. で情報取得するのもよくて。。。でも、3. に戻ってきたら CGI に処理が移らずに再度 2. を繰り返してしまうのだ。ブラウザのキャッシュとかかなぁ、とも思ったが、そもそも 3. で CGI にアクセスしている記録も残らない。仕方ないので色々試すことにする
Phase.3 返り先をかえて連続取得 #
- 携帯電話から wml ファイルにアクセス。5 秒後、2. に redirect
- gpsone リンク。返り先は、返り値を表示したり保存したりする CGI にしておく
- CGI で、受け取った値を表示したり保存したり。60秒後、1. に redirect
これでうまくいった。でも、もう一つ謎が残っていて、wml 5秒+CGI 60秒ではなくて wml 60秒+CGI 5秒にすると、Phase. 2 と同じ状態になるのだ。何故?
まぁ、結果的に動くものはできてるので、いろんなことの究明はそのうち気が向いたら。
最後に。wml にしている理由は、html だと携帯電話はで refresh 効かないから。wml だと大丈夫 (^^)v