This function will return true if you can access the internet (or false if you can't). You can change the parameter being return when roaming (read the comments).
/*
* @return boolean return true if the application can access the internet
*/
private boolean haveInternet(){
NetworkInfo info = ((ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
if (info==null || !info.isConnected()) {
return false;
}
if (info.isRoaming()) {
// here is the roaming option you can change it if you want to disable internet while roaming, just return false
return true;
}
return true;
}
4 Comments
I think it is: NetworkInfo info = (NetworkInfo) getSystemService(CONNECTIVITY_SERVICE);
The correct line would be:
The only change are the brackets around the cast and until
.getActiveNetworkInfo()
.Edit: Thanks, the snippet was updated accordingly.
To check for internet connectivity, do you think that a better idea will be to try a ping to any server like www.google.com ?
The reason why I said that is because for this scenario:
When you try to run this code, it checks if the user has a valid connection or not and it doesn't check if the proper internet connection is established. I have tried this similar code before and this checks if the user has the network connection available.
After some research, I found this code snippet which will try to ping to any website e.g. www.google.com and if the response is valid, you can move on from there.
Here's the code snippet :
p1 is the Process and i.e.
Process p1 = java.lang.Runtime.getRuntime().exec("ping -c 1 www.google.com");