Как проверить, подключен ли wifi к конкретному SSID - PullRequest
3 голосов
/ 27 сентября 2011

Я прочитал это решение: Как проверить включение или отключение сетевого подключения в WIFI и 3G (тарифный план) в мобильном телефоне? . НО, он просто проверяет, подключена ли сеть Wi-Fi или нет. Как проверить, подключен ли wifi к конкретному SSID или нет?

Ответы [ 3 ]

9 голосов
/ 27 сентября 2011

Код похож, снова используйте системную службу, убедитесь, что вы подключены к чему-то и получите SSID:

WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
if (WifiInfo.getDetailedStateOf(wifiInfo.getSupplicantState()) == NetworkInfo.DetailedState.CONNECTED) {
    String ssid = wifiInfo.getSSID();
}
1 голос
/ 25 марта 2014

Лучшее, что сработало для меня:

Menifest:

<receiver android:name="com.AEDesign.communication.WifiReceiver" >
        <intent-filter android:priority="100">
            <action android:name="android.net.wifi.STATE_CHANGE" />
        </intent-filter>
    </receiver>

Класс:

 public class WifiReceiver extends BroadcastReceiver{

        @Override
        public void onReceive(Context context, Intent intent) {

            NetworkInfo info = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
            if(info!=null){

                if(info.isConnected()){
                                    //Do your work. 

                                    //To check the Network Name or other info:
                        WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
                    WifiInfo wifiInfo = wifiManager.getConnectionInfo();
                        String ssid = wifiInfo.getSSID();

                }
            }

Разрешения:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
1 голос
/ 09 июля 2012
public static boolean IsWiFiConnected(Context context) {
    ConnectivityManager connectivity = (ConnectivityManager) context
        .getApplicationContext().getSystemService(
            Context.CONNECTIVITY_SERVICE);

    if (connectivity != null) {
      NetworkInfo[] info = connectivity.getAllNetworkInfo();
      if (info != null) {
        for (int i = 0; i < info.length; i++) {
          if (info[i].getTypeName().equals("WIFI")
              && info[i].isConnected())
            return true;
        }
      }
    }

    return false;
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...