HWD15用ステータス取得アプリ(続編)

続編:HWD15 Status Notifier 完成


前回で終わりのはずだった、Android向けのHWD15ステータス取得アプリ、アゲイン。

Screenshot_2014-09-15-22-54-19.png

というのも、前回作ったものではさすがに中途半端すぎて実用性が乏しかったので、結局ちゃんとした環境で一から作りなおす羽目になってしまったのだ。
(はじめからそうしとけよ)

1.環境
いわゆるIDEというやつ。
巷にあふれている情報ではeclipseが鉄板のようだが、過去に何度かトライ(しようと)した時はNetbeans+NBAndroidを使っていたので、どちらにするかえらく迷った。
結局情報の多いeclipseを選んだのだが、使い始めてすぐエラー多発で使い物にならず、最終的にNetbeansに戻ってきてしまった。
まあ、Netbeansも日本語入力をしたら落ちるという致命的なバグを持ってて、しかも参考サイト通りにやっても改善しなかったので、結局かなり不便な環境で開発する羽目になったのだが...。

 

2.構想
基本構想は前回AppInventor2で作ったのものと同じ。
定期的(時間設定可能)にHWD15のステータスをチェックし、電波状況と電池残量をAndroidの通知バーに表示する。
通知バーのアイコン表示で電波状況の確認ができればなおよし。
システムにプロセスを殺されないよう、完全常駐できたらいいな。

通信モードや各種設定の変更等は公式アプリでできるので割愛。というか棲み分け。
あくまでも通知バーでリアルタイムに情報を閲覧できるようにするのが第一目標。

といった感じで。

 

3.開発
基本的なAndroidの知識からしてあやふやなので、過去にトライしようとした時の記憶を頼りに進めた。
基本的にググる→サンプルコードを拝借→動くようになるまで手直しの繰り返し。
完全にコピペコーディング状態な上、参考にした情報には古いものもあったので、非推奨の手法が入り込んでいるかも。
今回は「とりあえず実用的なレベルまでもっていく」のが目的なので、マズいところはおいおい手直ししていくつもり。

 

4.で、とりあえず形にはなった

丸2日の努力の末、ようやく作りたかったものっぽいのが出来上がった。

Screenshot_2014-09-15-22-54-19.png
(ステータスバーに注目!きちんと電波状況、電池残量が通知されている!)

インターフェイスは面倒なのでAppInventor時代のをそのまま使用。決して良い見た目とはいえないが、あくまでも大事なのは通知バー(しつこい)ということで。
機能的な部分の実装が全て終わったら、デザインについても考えなければならないかな。

機能面も大枠で構想通りにできた。指定した時間ごとにHWD15へアクセスしてステータスを取得。
そして取得したデータをステータスを通知バーに表示。前回と変わりがなければ通知されない(これはAndroidの仕様っぽい)。

また、現在の電波状況に応じて通知アイコンを変更することで、アンテナの本数を常に確認できるようになった。


ただし上記の機能にはまだ不十分な点もあるため、今後以下の改良を加えるつもり。

  • 通知バーのアイコン
    • WiMAX接続時は5段階(現状)、WiMAX2+接続時は4段階でアイコンを表示する。
    • 回線種別(WiMAX/WiMAX2+/au LTE)の判別が一目でつくよう、アイコンを工夫する。
    • 電池残量も同様。アイコンに残量表示を織り込みたい。
    • auのLTEに対応したい(優先度:低)
  • 常駐機能
    • 現状はなんちゃって常駐なので、完全に常駐してシステムから殺されないようにする。
    • 一度でも接続に失敗したら常駐を解除してしまうので、リトライ機能を持たせる。
    • 常駐停止後も通知バーにアイコンが残ってしまうので、消すようにする。
    • 常駐周りが不安定で落ちることがあるので、原因を解明する。
  • メイン画面のインターフェイス
    • ログウィンドウを廃止したため、空いた部分に何か表示する(デバイス情報とか?)
    • 画面が回転しないようにする(ボタンを押せなくなるため)。
    • 各種設定項目とステータス表示項目を別ページに分ける(起動直後は各種ステータスとStart/Stopボタンのみ表示され、IPアドレスや更新間隔の設定などは別画面にする。
    • インターフェイスをスタイリッシュにする(優先度:低)

     

    とまあやりたいことは多いものの、現状でも十分実用できるレベルではある。
    正直ここまでできるとは思っていなかったので、この意気で最後まで仕上げていきたい。

    続編があればまた更新します。

    コメントする