/* WiFiUtil.java Copyright (c) 2014 NTT DOCOMO,INC. Released under the MIT license http://opensource.org/licenses/mit-license.php */ package org.deviceconnect.android.deviceplugin.irkit.network; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.wifi.WifiManager; /** * WiFi周りのユーティリティクラス. * @author NTT DOCOMO, INC. */ public final class WiFiUtil { /** * ユーティリティクラスのためprivate. */ private WiFiUtil() { } /** * 現在のSSIDを取得する. * * @param context コンテキストオブジェクト * @return SSID文字列。WiFiでは無い場合はnullを返す。 */ public static String getCurrentSSID(final Context context) { String ssid = null; if (isOnWiFi(context)) { WifiManager wifi = (WifiManager) context.getSystemService(android.content.Context.WIFI_SERVICE); ssid = wifi.getConnectionInfo().getSSID(); if (ssid != null) { // ダブルクォーテーションを含んでいるので外す ssid = ssid.replaceAll("\"", ""); } } return ssid; } /** * WiFiにつながっているかどうかチェックする. * * @param context コンテキストオブジェクト * @return つながっている場合true、その他はfalseを返す。 */ public static boolean isOnWiFi(final Context context) { ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo ni = cm.getActiveNetworkInfo(); if (ni == null || !ni.isConnected() || (ni.getType() != ConnectivityManager.TYPE_WIFI)) { return false; } return true; } /** * * * @param context context. * @param oldSSID 古い ssid. * @return SSID が変更になったかどうか. */ public static boolean isChangedSSID(final Context context, final String oldSSID) { String current = getCurrentSSID(context); if (current == null) { return (oldSSID != null); } return !current.equals(oldSSID); } }