Reputation: 3524
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
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
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
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
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