サイト移転のお知らせ

しばらくブログお休みしていましたが、こちらに移転しました。よろしければこちらへどうぞ。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Android WiFiの状態遷移

おかげさまで、AndroidアプリWiFi Tickerが8000DLを超えました。ありがとうございます。
それぐらいで喜ぶな!なんて言わないで(笑)

さて、AndroidのWiFiの状態変化はブロードキャストインテントNETWORK_STATE_CHANGED_ACTIONで受け取る事ができますが、この状態遷移がなかなかのくせ者でした。
Manifestの記述は省略しますが、状態変化を受け取るためのブロードキャストレシーバはこんな感じになります。状態は、NetworkInfo.Stateから取る事ができます。



リファレンスを見ると大まかな状態として以下の4つが定義されています。
http://developer.android.com/reference/android/net/NetworkInfo.State.html
  • CONNECTING
  • CONNECTED
  • DISCONNECTING
  • DISCONNECTED

まぁ、名前からして以下のような状態遷移をするんだと思いがちです(少なくとも私はそう思ってしまいました))。
wifi_state_1.png
「DISCONNECTED→CONNECTING→CONNECTED→DISCONNECTING→DISCONNECTED」が素直な状態遷移として、それ以外にも、接続しようとして失敗する「CONNECTING→DISCONNECTED」や、突然接続解除される「CONNECTED→DISCONNECTED」はあるでしょう。

ところがどっこい(表現が古い・・・)こんな状態遷移をしやがります。

wifi_state_2.png

「CONNECTED→CONNECTING」

繋がっているのにまだ繋がろうとするのかい?欲張りな奴だ。
このあたりの状態を意識したアプリを作るときには気をつけましょう。

ちなみに、この「CONNECTED→CONNECTING」の間に一瞬接続が切れているということを検知するためには、SUPPLICANT_STATE_CHANGED_ACTIONのブロードキャストインテントを使うとイベントを受けられます。
http://developer.android.com/reference/android/net/wifi/WifiManager.html#SUPPLICANT_STATE_CHANGED_ACTION
関連記事
スポンサーサイト

テーマ : プログラミング
ジャンル : コンピュータ

トラックバック


この記事にトラックバックする(FC2ブログユーザー)

まとめtyaiました【Android WiFiの状態遷移】

おかげさまで、AndroidアプリWiFi Tickerが8000DLを超えました。ありがとうございます。 それぐらいで喜ぶな!なんて言わないで(笑) さて、AndroidのWiFiの状態変化はブロードキャストイン

コメントの投稿

非公開コメント

サイト内検索
プロフィール

Author:imxs

Androidアプリ開発などを行っているimxsの開発者です。気になることを調べてメモって行きます。ほとんどの人にはどうでもいい内容でも、広い世の中一人くらいは同じ疑問を持った奇妙な人がいることを信じつつ。暖かい目で見守ってやってください。
imxsの開発者ブログは移転しました。よろしければこちらへどうぞ。

カテゴリ
最新記事
リンク
RSSリンクの表示
最新コメント
最新トラックバック
FC2カウンター
アクセスランキング
[ジャンルランキング]
携帯電話・PHS
134位
アクセスランキングを見る>>

[サブジャンルランキング]
Android(Google)
34位
アクセスランキングを見る>>
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。