Possible Duplicate:
How to check internet access on Android? InetAddress never timeouts
I need to detect whether the Android device is connected to the Internet.
The NetworkInfo class provides a non-static method isAvailable() that sounds perfect.
Problem is that:
NetworkInfo ni = new NetworkInfo();
if (!ni.isAvailable()) {
// do something
}
throws this error:
The constructor NetworkInfo is not visible.
Safe bet is there is another class that returns a NetworkInfo object. But I don’t know which.
- How to get the above snippet of code to work?
- How could I have found myself the information I needed in the online documentation?
- Can you suggest a better way for this type of detection?
The
getActiveNetworkInfo()method ofConnectivityManagerreturns aNetworkInfoinstance representing the first connected network interface it can find ornullif none of the interfaces are connected. Checking if this method returnsnullshould be enough to tell if an internet connection is available or not.You will also need:
in your android manifest.
Edit:
Note that having an active network interface doesn’t guarantee that a particular networked service is available. Network issues, server downtime, low signal, captive portals, content filters and the like can all prevent your app from reaching a server. For instance you can’t tell for sure if your app can reach Twitter until you receive a valid response from the Twitter service.