8

I am developing an android application,In my application,I want to check network connection,like i want to check network connection in wifi and 3G(like Indians mostly like data plan in mobile),how to check network in wifi and 3G.naybody knows,please give some idea about that.

Thanks

Vladimir Ivanov
  • 42,730
  • 18
  • 77
  • 103
JohnRick
  • 187
  • 1
  • 3
  • 10

4 Answers4

39

Please try this

public static boolean isInternetConnected (Context ctx) {
    ConnectivityManager connectivityMgr = (ConnectivityManager) ctx
            .getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo wifi = connectivityMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
    NetworkInfo mobile = connectivityMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
    // Check if wifi or mobile network is available or not. If any of them is
    // available or connected then it will return true, otherwise false;
    if (wifi != null) {
        if (wifi.isConnected()) {
            return true;
        }
    }
    if (mobile != null) {
        if (mobile.isConnected()) {
            return true;
        }
    }
    return false;
}

Please add below permission in android manifest file.

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Jean
  • 2,611
  • 8
  • 35
  • 60
Chirag
  • 56,621
  • 29
  • 151
  • 198
  • If SimCard is not available in device like Tablet than.?? – Pratik Butani Apr 01 '14 at 10:26
  • when it is connected to wifi, it will return true. But when it is connected to wifi but no actually data getting for browing purpose. In such situation How to find connected to wifi but no internet connection? – Ganesh Katikar Aug 14 '14 at 11:22
9

Here is code snippet. It returns true if network enable ,else false

private boolean netCheckin() {
    try {
        ConnectivityManager nInfo = (ConnectivityManager) getSystemService(
            Context.CONNECTIVITY_SERVICE);
        nInfo.getActiveNetworkInfo().isConnectedOrConnecting();
        Log.d(tag, "Net avail:"
            + nInfo.getActiveNetworkInfo().isConnectedOrConnecting());
        ConnectivityManager cm = (ConnectivityManager) getSystemService(
            Context.CONNECTIVITY_SERVICE);
        NetworkInfo netInfo = cm.getActiveNetworkInfo();
        if (netInfo != null && netInfo.isConnectedOrConnecting()) {
            Log.d(tag, "Network available:true");
            return true;
        } else {
            Log.d(tag, "Network available:false");
            return false;
        }
    } catch (Exception e) {
        return false;
    }
}
Mr_and_Mrs_D
  • 32,208
  • 39
  • 178
  • 361
Piyush Patel
  • 1,765
  • 1
  • 16
  • 29
  • 1
    Edit the code - you have 2 vars with the same value ! You are calling `getActiveNetworkInfo()` AND `isConnectedOrConnecting()` 3 times ! – Mr_and_Mrs_D Sep 22 '13 at 18:08
  • The above code is correct. But what if mobile is connected to wifi but actually no data getting for browsing. In that time how to find it. – Ganesh Katikar Aug 14 '14 at 11:20
2

you can use below code this is working for all API versions:

ConnectivityManager cm =
                (ConnectivityManager)mContext.getSystemService(Context.CONNECTIVITY_SERVICE);

        NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
        boolean isConnected = activeNetwork != null &&
                              activeNetwork.isConnectedOrConnecting();

    if(isConnected)
    {
    if(activeNetwork.getType()==ConnectivityManager.TYPE_MOBILE)
    return true;    

    else
        return false;
    }

    else
        return false;
Arun kumar
  • 1,894
  • 3
  • 22
  • 28
1

I am using this one inside Activity class

private boolean isConnectedToInternet() {
  ConnectivityManager connectivityManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
  NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
  return (networkInfo != null);
}