How to detect when WIFI Connection has been established in Android?

前端 未结 13 743
庸人自扰
庸人自扰 2020-11-22 05:34

I need to detect when I have network connectivity over WIFI. What broadcast is sent to establish that a valid network connection has been made. I need to validate that a v

13条回答
  •  失恋的感觉
    2020-11-22 05:56

    Answer given by user @JPM and @usman are really very useful. It works fine but in my case it come in onReceive multiple time in my case 4 times so my code execute multiple time.

    I do some modification and make as per my requirement and now it comes only 1 time

    Here is java class for Broadcast.

    public class WifiReceiver extends BroadcastReceiver {
    
    String TAG = getClass().getSimpleName();
    private Context mContext;
    
    @Override
    public void onReceive(Context context, Intent intent) {
    
        mContext = context;
    
    
        if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
    
            ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo networkInfo = cm.getActiveNetworkInfo();
    
            if (networkInfo != null && networkInfo.getType() == ConnectivityManager.TYPE_WIFI &&
                    networkInfo.isConnected()) {
                // Wifi is connected
                WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
                WifiInfo wifiInfo = wifiManager.getConnectionInfo();
                String ssid = wifiInfo.getSSID();
    
                Log.e(TAG, " -- Wifi connected --- " + " SSID " + ssid );
    
            }
        }
        else if (intent.getAction().equalsIgnoreCase(WifiManager.WIFI_STATE_CHANGED_ACTION))
        {
            int wifiState = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, WifiManager.WIFI_STATE_UNKNOWN);
            if (wifiState == WifiManager.WIFI_STATE_DISABLED)
            {
                Log.e(TAG, " ----- Wifi  Disconnected ----- ");
            }
    
        }
    }
    }
    

    In AndroidManifest

    
            
                
                
            
        
    
    
    
    
    

提交回复
热议问题