note_DataConnectionMonitor

DataConnectionMonitor

コネクションについて
<au IS03>

  • なんでau?という,ツッコミはなしで・・・
  • 本体(Baseband? OS?)が,まめにコネクションを切断している模様
  • 具体的には,通信終了後,一定時間経過でコネクションが切断される(au回線は通話と通信が同時に利用できないため,そのような措置を取っているのかな?)
  • 通信発生時には,自動で再接続している
  • PUSH配信などには,どのように対応しているのかは不明
  • Rev.Aは,EVDOとして認識されていた
  • 1.0.1では電波強度の判定閾が標準と異なる(1.0.2で対応)
  • 「1.0.1では云々」は私の勘違いでした(1.0.2を公開しました)
  • まぁ,対応しても,auでこのアプリを利用する価値は皆無ですが・・・

<REGZA Phone T-01C + DoCoMo sim>

  • 全くもって問題なし
  • 圏外によるデータコネクション喪失についても検出していたと思う
  • b-mobile simは未確認(他の人の端末なので!)

<HTC Sensation>

  • 圏外に移動したときに,データコネクションの喪失が検出されないRadioがある(Europe版のRUUにあったradio)
  • このとき,ConnectivityManager経由で取得したNetworkInfo#isConnectedでも検出できない(trueが返る)
  • おそらく,ユーザアプリでは,どうやってもこの問題に対応できないと思われる(すべてのアプリは,コネクションが確立していると判断しているはず)
  • 完全に推測だが,HTCのradioはデータ通信の喪失も音声の圏外で判定しているのかもしれない
  • 電波強度を見て判断してもらうしかなさそう

ICS(Honeycomb 3.1以上)対応について

  •  基本的にQAに書いたとおりなのだが,アプリがインストールされ,未実行の状態(stopped state)だと,標準ではそのアプリにINTENTが届かない。
  • INTENTにFLAG_INCLUDE_STOPPED_PACKAGESを付加してやる(addFlags)と届く。
  • しかし,このアプリの場合,フラグを付加したINTENTを飛ばす方法がなかったので(アプリの画面がなかったので!),結局,起動画面を作ることで対応。
  • 起動画面を作ったら,わざわざ,フラグを付加したINTENTを飛ばす必要がなくなったという・・・
  • 個人的には,このアプリはシステムサービスのように,普段は極力,ユーザの目にとまらないアプリを目指してたので,ちょっと残念・・・
  • このアプリを起動する(フラグを付加したINTENTをBroadcast送信する)アプリを,別途,作成することも考えたんだが,その実装だと,利用者は1つの機能のために2つのアプリをインストールする必要があり,「それって,利用者視点でどうよ?」と思って,おとなしく(?)起動画面を作成。
  • アプリ(package)自体に状態(stopped stateとか)を持たせて管理するってのは,自由にアプリをインストールできるために,OSの負荷が高まりやすいスマホには良い考えだと思う。
  • けど,作成側が考慮しなくちゃならないことが増えてきましたね・・・!
  • 正確な情報(ソース)はこちら

 

最近の投稿