2016/10/19

Android で Wi-Fi 機能が現在有効かどうか調べる

この記事は Android の Wi-Fi 実装に関する情報のまとめ の一部として書かれました

Wi-Fi 機能の ON/OFF を調べます。 また、Wi-Fi の ON/OFF 切り替え時には状態があり、より正確な制御をするためには、状態を確認する必要があります。

コード

1
2
3
4
5
6
7
8
9
10
11
12
13
// Activity 等の Context 内で
 
// Wi-Fi ON/OFF の取得
WifiManager wm = (WifiManager) getSystemService(WIFI_SERVICE);
boolean isWifiEnabled = wm.isWifiEnabled();
 
// 状態の取得
// WifiManager.WIFI_STATE_DISABLED
// WifiManager.WIFI_STATE_DISABLING
// WifiManager.WIFI_STATE_ENABLED
// WifiManager.WIFI_STATE_ENABLING
// WifiManager.WIFI_STATE_UNKNOWN
int wifiState = wm.getWifiState()

パーミッション

このコードを実行するには android.permission.ACCESS_WIFI_STATE パーミッションを AndroidManifest.xml で設定する必要があります。

1
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE">

isWifiEnabled と wifiState との関係

android.net.wifi.WifiManager のソースコード1は以下のようになっています。 つまり、Wi-Fi の変化時、isWifiEnabledfalse であり、細かい状態を wifiState から取得しなければなりません。

1
2
3
public boolean isWifiEnabled() {
    return getWifiState() == WIFI_STATE_ENABLED;
}

GUI上での表示

GUI 上では Wi-Fi の設定から確認可能な項目です。

設定 → 無線とネットワーク → Wi-Fi

  1. Android 7.0 Nougat 
?

0 件のコメント: