一生懸命Netbeansで作成していたHWD15用ステータス取得アプリ、完成。
正式な名称を、当初から付けていた「HWD15 Status Notifier」にして、開発は一旦終了。
今後は、暇を見つけてチマチマ改善、改修をする程度になると思う。
■改善点
前回からの改善点としては以下の通り。
1.アイコンの種類を増やした
WiMAX接続時は今まで通りの白黒アイコン(5段階)、WiMAX2+接続時は青色のアイコン(4段階)にした。
コンピューター、プログラミング、モバイル、ガジェットなどエレクトロニクス分野を中心にネタを提供するウェブサイトです。最近は中国ネタにも注力中。かつてはHWD15向けのAndroidアプリ「HWD15 Status Notifier」を作ってたりしていました。
一生懸命Netbeansで作成していたHWD15用ステータス取得アプリ、完成。
正式な名称を、当初から付けていた「HWD15 Status Notifier」にして、開発は一旦終了。
今後は、暇を見つけてチマチマ改善、改修をする程度になると思う。
■改善点
前回からの改善点としては以下の通り。
1.アイコンの種類を増やした
WiMAX接続時は今まで通りの白黒アイコン(5段階)、WiMAX2+接続時は青色のアイコン(4段階)にした。
色を変えることに加え、アイコンのデザインもあえて別のものにすることで、WiMAX/WiMAX2+の見分けが付きやすくなった。
(一応、au 4G LTE向けにオレンジのアイコンも用意している)
また、接続中、圏外についてもアイコンを追加。
「接続中()」のカッコ内の数字は、APIから取得した数字をそのまま表示している。
実は、接続中(圏外?)を表すステータスがいくつかあるのだが、どれが何を表しているのかはっきりとした判別が付かなかったので、今後の調査用に残してある。
なお、電池残量をアイコンに織り込むのは断念した。
電波状況18種類×電池残量5種類=全90通りのアイコンを作るのはさすがに面倒くさかった。
(電池残量4通り×充電中か否か2通り=8種類のアイコンを作る案もあったが、それこそ気が遠くなりそうだった)
開発の参考にしていたUroadMagicもアイコンは電波表示だけだったので、これぐらいでいいかと。
2.常駐機能の強化
何とか頑張って完全常駐させることに成功。「最近使ったアプリ」から削除しても、サービスが落ちることはなくなった。
また、接続に失敗した場合はリトライするようにした。
リトライ間隔は「更新間隔」で設定している秒数だが、リトライ回数が10回を超えると1分ごと、20回を超えると5分ごと、30回を超えると...と段々間隔が延びるようになっており、無駄なバッテリー消費を抑えるようにしてある。
サービスの安定性についても向上しており、接続前にネットワークを検出して、繋がらなかったらリトライにまわすようにしている。
これで、途中でHWD15の電源を切ったりしても落ちなくなった。
3.通知機能の強化
上記のエラーやリトライのメッセージも通知領域に表示するようにした。
これまではトースト表示だったのだが、リトライするたびにトーストを表示されると邪魔だし、数秒で消えてしまうと後からエラー内容を確認することが出来なくなるので、通知バーに表示したのは正解だった。
4.メイン画面のインターフェイスを変更
メイン画面も大幅に変更した(といっても、スタイリッシュにはなっていないが)
これまで「接続先」として指定していたIPアドレス指定機能を廃止。
「http://wi-fiwalker.home」を呼び出してやれば問題ないっぽいので。
空いた場所には電波状況/電池残量を表すアイコンを設置。
文字でも表示してるんだけど、大きなアイコンで表示してやれば視認性はぐっと上がるんじゃないかと。
それでも微妙に隙間があったのでログテキストを復活。1行だけだけど。
今後機能が増えてスペースがなくなったらまた消すかも。
あと、更新間隔を設定するスライダーを変更し、5秒単位で選択するようにした。
あんまり細かいと選択しづらいし、「12秒間隔」とか需要ないしね。
同時に最短更新間隔を3秒に。1秒間隔はさすがに短すぎた。
その他、画面回転を抑制して縦画面固定に。ボタンがはみ出ることがあるのでスクロール対応。
4.1 ひとつ難点と言えば、
自動更新(サービス起動)中は通知バーに最新の情報が表示されるのだが、これはメイン画面の情報(ステータス)には反映されないということ。
メイン画面のステータスが更新されるのは、「Refresh」ボタンを押したときだけ。
もともとの開発思想が、「通知バーに表示するだけのアプリ、メイン画面はあくまで設定画面」というものだったので、「Refresh」ボタンやメイン画面のステータス表示はテスト用の暫定的なもの、という考えだったのが主な理由。
Handlerを使えばサービスで取得した情報をアクティビティに受け渡すことが出来るようだが、うまくいかなかったのとあんまりメリットがないので割愛した。
■今後の予定
基本的に欲しかった機能は搭載できたので、前回(優先度:低)としていた部分が今後の課題。
1つ目は、上でも書いたが、自動更新時にメイン画面の情報も更新できるようにすること。
それから、auのLTEへの対応。手間は少ないが、今のところHiSpeed+モードを使用する予定が無いのでいつになるかは不明。
そして、サービスの安定性向上。落ちることは減ったが、未だたまに落ちるので。時々スレッドが2重起動してたりもするので、リトライ周りでバグがある可能性あり。
あ、あとアイコンも決めなきゃ。
■更なる機能拡大?
もし時間があれば、
当初の構想から外れるけど、通信モードの変更や通信量カウンターなど、HUAWEI Mobile WiFi 3(公式アプリ)が持っている機能についても、(自分が必要な範囲で)搭載させようかなと考えている。
というのも、レビューを見ても分かるように、HUAWEI Mobile WiFi 3はバックグラウンドでの動作が激しすぎる。
Netbeansでの開発中にNexus5の動作ログを見ていたんだけど、HUAWEI Mobile WiFi 3がしきりにHWD15にアクセスしてて(10秒毎ぐらい)、しかもアプリを落としてもずーーっと裏で動き続けているっぽいので。
電源オフや再起動など、ログインが必要な動作については技術的に難しいかもしれないけど、ログインなしでアクセスできる部分については、実装の手間はほとんどかからないだろう。
といっても、公式アプリに期待しているのは通信モード変更を除けば電源オフ、再起動ぐらいなので、結局はログインが必要なんだけど。
コメントする