Skip to content Skip to sidebar Skip to footer

How To Check If Wifi Is Really Connected In Android

I'd like my android device to connect to a wifi hotspot. I created a new wificonfiguration and add it into the wifimanager, this wificonfiguration has NetworkId.Then I invoke the f

Solution 1:

You can try this:

ConnectivityManagercm= (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfowifi= cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

if (wifi.isConnected()) {
    // Your code here
}

Edit: More details:

Register a BroadcastReceiver in your manifest like so:

<receiverandroid:name="WifiReceiver"><intent-filter><actionandroid:name="android.net.conn.CONNECTIVITY_CHANGE"/><actionandroid:name="android.net.wifi.STATE_CHANGE"/></intent-filter></receiver>

Then put the code above on the onReceive() method of your receiver like so:

@OverridepublicvoidonReceive(Context context, final Intent intent) {
    ConnectivityManagercm= (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
    NetworkInfowifi= cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

    if (wifi.isConnected()) {
        // Your code here
    }
}

Solution 2:

You can check all the network. If you only want WIFI you can remove checking other 2 network.

publicstaticbooleanhasInternetConnection()
{
    ConnectivityManagercm= (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfowifiNetwork= cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
    if (wifiNetwork != null && wifiNetwork.isConnected())
    {
        returntrue;
    }
    NetworkInfomobileNetwork= cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
    if (mobileNetwork != null && mobileNetwork.isConnected())
    {
        returntrue;
    }
    NetworkInfoactiveNetwork= cm.getActiveNetworkInfo();
    if (activeNetwork != null && activeNetwork.isConnected())
    {
        returntrue;
    }
    returnfalse;
}

Don't forget to add following in manifest:

<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permissionandroid:name="android.permission.INTERNET" /><uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE" />

Solution 3:

This may help you .

publicstaticbooleanisInternetAvailable(Context context) {
    booleanhaveConnectedWifi=false;
    booleanhaveConnectedMobile=false;
    booleanconnectionavailable=false;
    ConnectivityManagercm= (ConnectivityManager) context
            .getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo[] netInfo = cm.getAllNetworkInfo();
    NetworkInfoinformationabtnet= cm.getActiveNetworkInfo();
    for (NetworkInfo ni : netInfo) {
        try {
            if (ni.getTypeName().equalsIgnoreCase("WIFI"))
                if (ni.isConnected()) haveConnectedWifi = true;
            if (ni.getTypeName().equalsIgnoreCase("MOBILE"))
                if (ni.isConnected()) haveConnectedMobile = true;
            if (informationabtnet.isAvailable()
                && informationabtnet.isConnected())
                connectionavailable = true;
            Log.i("ConnectionAvailable", "" + connectionavailable);
        } catch (Exception e) {
            System.out.println("Inside utils catch clause , exception is"
                + e.toString());
            e.printStackTrace();
        }
    }
    return haveConnectedWifi || haveConnectedMobile;
}

Solution 4:

getNetworkInfo(int) method is deprecated. You can apply something like this

ConnectivityManagerconnectivityManager= (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfoactiveNetwork= connectivityManager.getActiveNetworkInfo();
    if (activeNetwork != null) { 
        // connected to the internetif (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI) {
            // connected to wifi

        } elseif (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) {
            // connected to the mobile network
        }
    } else {
        // not connected to the internet
    }

Also, please add this permission under AndroidManifest.xml

<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE" />

Post a Comment for "How To Check If Wifi Is Really Connected In Android"