spen123
spen123

Reputation: 3524

Check Network and Internet Connection - Android

I was wondering if the method below check that I am both connected to a network, and can actually connected to the internet as well.

Not just connected to a network that won't let me access the internet ?

public boolean isNetworkAvailable() {
    ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkInfo = manager.getActiveNetworkInfo();

    boolean isAvailable = false;
    if (networkInfo != null && networkInfo.isConnected()) {
        isAvailable = true;
    }
    return isAvailable;
}

I think, it does but I am not 100% sure.

Thanks

Upvotes: 5

Views: 19790

Answers (4)

Nelson Katale
Nelson Katale

Reputation: 1539

I tried the approach of user:3156908 but it kept crashing my app when the internet connection was off. Turns out there was a logical error on his code so i used the connectivityManager.getActiveNetworkInfo() != null to check for network details. In case the device is connected to the network or it is in the process of connecting to the network use the isConnectedOrConnecting()

In your AndroidManifest.xml file add the following

<!--  Internet Permissions -->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Create a method called checkInternetConnection in your fragment class or Activity class and add the following lines of code.

 @TargetApi(Build.VERSION_CODES.LOLLIPOP)
    private boolean checkInternetConnection(){
        ConnectivityManager connectivityManager = (ConnectivityManager) mcontext.getSystemService(mcontext.CONNECTIVITY_SERVICE);
        return connectivityManager.getActiveNetworkInfo() != null
                && connectivityManager.getActiveNetworkInfo().isConnectedOrConnecting();
    }

Then you can call the checkInternetConnection in your fragment's onViewCreated method or your activity's onCreate method.

Note I would strongly advise you to test it the code when its connected to wifi, mobile data and airplane mode.

Upvotes: 0

Karvendan
Karvendan

Reputation: 1

The code below will check the internet connectivity using kotlin in android studio:

private fun amIConnected(): Boolean {
    val connectivityManager = this.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
    val activeNetworkInfo = connectivityManager.activeNetworkInfo
    return activeNetworkInfo != null && activeNetworkInfo.isConnected
}

Upvotes: 0

wolfaviators
wolfaviators

Reputation: 503

On comparing the accepted answer on this post to your code, what you are doing should work. Feel free to compare code. The safest thing to do would be to run a few tests from airplane mode, with the WiFi turned off, and from a location away from WiFi just to be sure. Good luck.

Android - Programmatically check internet connection and display dialog if notConnected

Upvotes: 2

Seshu Vinay
Seshu Vinay

Reputation: 13588

Have a look into one of my old answers. It has two different methods 1. to check if a device is connected to a network 2. to check if a device is connected to Internet.

Upvotes: 2

Related Questions