I am using the following code to see if user have internet connection (WIFI or 3G or Edge).
Why does some users get “No internet connection” when they do have it?
try{
ConnectivityManager connec = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
State wifi = connec.getNetworkInfo(1).getState();
if (connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED ||
connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTING ||
wifi == NetworkInfo.State.CONNECTED || wifi == NetworkInfo.State.CONNECTING ) {
///HAVE CONNECTION CODE////
}else if ( connec.getNetworkInfo(0).getState() == NetworkInfo.State.DISCONNECTED || connec.getNetworkInfo(1).getState() == NetworkInfo.State.DISCONNECTED ) {
///NO CONNECTION CODE///
}
} catch (Throwable t){
///NO CONNECTION CODE///
}
My guess would be that
connec.getNetworkInfo(0)andconnec.getNetworkInfo(1)aren’t always valid for the wifi/3g network interfaces. Try checking the ‘TypeName’ of the interfaces. I use this code…