2009年10月27日

Android端末で PHS300の電波状態を

現在、私のHT-03AではDocomoの3G通信は使わず、PHS300というポータブルのWi-Fiルータ経由でイーモバイルに接続しています。

移動中は、PHS300はかばんに入れているので、イーモバイルの電波状態などがHT-03A上で見られると良いなと考えて、Andoroidアプリ開発に初挑戦してみました。

phs300stat2

で、できあがったのが、上図のように電波状態をウィジェットとして表示する、”PHS300 Status” アプリケーションです。

Android Marketにも登録してありますので、興味のある方はご活用ください。



Android Marketからインストールして、ホーム画面上のお好きな場所に”PHS-300 Status”ウィジェットを置くと、最初はPHS300に関する設定が何もされていないので、下図のように、”NO PHS300”と表示されてしまいます。

phs300stat0

初期設定をするには、このウィジェットをタッチして設定画面を呼び出してください。

PHS300の無線LANアクセス用SSID、PHS300のIPアドレス、管理ユーザのパスワードの設定が最低限必要となります。
オプションとして、ウィジェットがPHS300をチェックする時間間隔(デフォルトは10秒毎です)や、インターネット上でPINGにより疎通確認が可能なサーバを指定して、実際にインターネットに接続しているかの確認もできます。
但し、自分が管理しているサーバー以外への定期的なPINGチェックは避けた方が懸命だと考えますし、PHS300バッテリ節約のためにUSBモデムの接続をオンデマンド設定されている場合には、バッテリ消費を早める結果になりますのでご注意ください。

これらの設定が終われば、ホーム画面上のウィジェットに現在のPHS300の状態が一定時間間隔で反映されるはずです。

phs300stat1

但し、現在のところまだまだ動作が完璧とはいえません。

まず、このツールはPHS300の管理画面で出力しているxmlを解析して使用していますが、PHS300の管理画面のログイン手順というのが、かなりトリッキーな作りとなっているためログインに失敗してしまう場合があります。PHS300の管理画面ログインについては、zenuさんの、「[雑記]PHS-300を買ってみた」にかなり詳しい解析結果が載せられていますが、javascriptを使用して、PHS300が発行したトークンを元にしたリクエストが必要となっています。

この”PHS300 Status”ではこのPHS300のJavaScriptのロジックをJAVAに置き換えてリクエストを発行しているわけですが、複数の無線LANクライアントからの管理者画面アクセスに対応していないようで、起動実行タイミングによっては、本アプリから複数の要求が発行されたように取られるのか、いつまでたっても”LoginErr”の表示が消えないときがあります。

このような場合には、使用しているAndroid端末もしくは他の無線LANクライアントのブラウザからPHS300の管理画面にログインを一度してやると、本アプリからのログインがうまくいくようになることが多いです。(これも確実とはいえませんが・・・・・)

あと、私がまだAndroidのプログラミングに慣れていないこともあって、定期的なチェック処理がいつの間にか停止してしまう場合があります。

この現象については、現在はAndroidの画面がスタンバイから復帰した時点と、ウィジェットをタッチして詳細状況画面(現在のところは特別なに詳細情報はありませんが・・・下図参照)を呼び出したタイミングで定期チェック処理の再起動を行なうようにして、極力停止しないようにしてあります。(まだまだ改善の余地はあります)

おまけとして、「詳細状況画面」には、モデムの切断、接続用のボタンを用意していますので、必要に応じてご使用ください。

phs300stat3

私がブログに、”PHS300 Status”の紹介をするのをサボっているうちに、AndroidのカスタムROMの紹介やPHS300の外付けバッテリ情報などで私も参考にさせていただいている、「あけはら散歩」さんにて、一足早く、「Android 用 PHS300 Status Widget」という記事にてご紹介いただいております。(ありがとうございます)

0 件のコメント:

コメントを投稿