WiFiの情報を取得する
|今日はAndroidでWiFiの情報を取得する方法をご紹介します。
WifiInfoクラスを使うことで以下に示すようなWiFiの情報を取得することができます。
- SSID
- BSSID
- IPアドレス
- MACアドレス
- ネットワークID
- リンクスピード
具体的な実現方法については続きをご覧下さい。
コードは以下のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | package org.jpn.techbooster.WiFiInfoSample; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; public class WiFiInfoSample extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.main); WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE); WifiInfo w_info = wifiManager.getConnectionInfo(); Log.i( "Sample" , "SSID:" +w_info.getSSID()); Log.i( "Sample" , "BSSID:" +w_info.getBSSID()); Log.i( "Sample" , "IP Address:" +w_info.getIpAddress()); Log.i( "Sample" , "Mac Address:" +w_info.getMacAddress()); Log.i( "Sample" , "Network ID:" +w_info.getNetworkId()); Log.i( "Sample" , "Link Speed:" +w_info.getLinkSpeed()); } } |
WifiManagerのgetConnectionInfoメソッドを使ってWifiInfoのオブジェクトを作成します。
WifiInfoオブジェクトの各メソッドから、WiFiの各情報を取得することができます。
上の例ではログに取得情報を表示するようにしています。
以下がその実行結果になります。
(一部、伏せてある情報があります。ご了承ください。)
ちなみに、上の実行結果ではIPアドレスがおかしな値になっています。
getIpAddress()はint型でIPアドレスを返すので、以下のようなビット演算で
オクテット表記にする必要があります。
1 2 3 | int ip_addr_i = w_info.getIpAddress(); String ip_addr = ((ip_addr_i >> 0 ) & 0xFF ) + "." + ((ip_addr_i >> 8 ) & 0xFF ) + "." + ((ip_addr_i >> 16 ) & 0xFF ) + "." + ((ip_addr_i >> 24 ) & 0xFF ); Log.i( "Sample" , "IP Address:" +ip_addr); |
2 Comments