au 携帯電話と GPS と ALPSLAB slide と - ロジック編 -

au 携帯電話と GPS と ALPSLAB slide と - ロジック編 - #

http://www.alpslab.jp/slide.html
先日「プログラム作ってる時にはまりどころがあったのだが、それは別項目で。」と言って 放置してたので、そろそろ書いておく。

au の携帯電話を使った位置取得方法については、「ここギコ! 」の「EZナビでの位置取得方法 」が詳しいのでそちらを参照されたし。

GPSに位置情報取得依頼するためには「device:gpsone?hogehoge」にアクセスするわけだが、これは直接 URL 入力しようとしてもブックマークに登録しようとしても「http:// で始めなされ」と断られてしまう。なのでまずやったのがこれ。

Phase.1 単発取得 #

  1. 携帯電話から wml ファイルにアクセス。リンクをクリックする
  2. gpsone リンク。返り先は、返り値を表示したり保存したりする CGI にしておく
  3. CGI で、受け取った値を表示したり保存したり

手動トラックロガーとしてはこれで成功。でも、自動取得したいので、Phase.2 にすすむ

Phase.2 連続取得 #

  1. 携帯電話から wmlファイルにアクセス。リンクをクリックする
  2. gpsone リンク。返り先は、返り値を表示したり保存したりする CGI にしておく
  3. CGI で、受け取った値を表示したり保存したり。60秒後、2. に redirect

これでいけると思っていたのだが、3. で redirect するまではよくて、2. で情報取得するのもよくて。。。でも、3. に戻ってきたら CGI に処理が移らずに再度 2. を繰り返してしまうのだ。ブラウザのキャッシュとかかなぁ、とも思ったが、そもそも 3. で CGI にアクセスしている記録も残らない。仕方ないので色々試すことにする

Phase.3 返り先をかえて連続取得 #

  1. 携帯電話から wml ファイルにアクセス。5 秒後、2. に redirect
  2. gpsone リンク。返り先は、返り値を表示したり保存したりする CGI にしておく
  3. CGI で、受け取った値を表示したり保存したり。60秒後、1. に redirect

これでうまくいった。でも、もう一つ謎が残っていて、wml 5秒+CGI 60秒ではなくて wml 60秒+CGI 5秒にすると、Phase. 2 と同じ状態になるのだ。何故?

まぁ、結果的に動くものはできてるので、いろんなことの究明はそのうち気が向いたら。

最後に。wml にしている理由は、html だと携帯電話はで refresh 効かないから。wml だと大丈夫 (^^)v

See Also

Copyright © 髭。/ Hugo + hugo-book