问题
How to check automatically if internet is active on the WiFi network connected in android? I can check if wifi is enabled or if wifi network is connected but I am not sure how to check if internet is connected? Is this possible?
private boolean connectionAvailable()
{
boolean connected = false;
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) {
//we are connected to a network
connected = true;
}
return connected;
}
Above checks on wifi enabled/wifi connected or not but not internet.
回答1:
public boolean isOnline() {
ConnectivityManager cm =
(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnectedOrConnecting()) {
return true;
}
return false;
}
回答2:
If you want to check your device is connected with wifi then use this method.
public static boolean isInternetConnected(Context context) {
ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mnetwork = connManager.getActiveNetworkInfo();
return mnetwork != null && mnetwork.isConnected();
}
And if you want to check your device is connected with Mobile Network Internet then use this method.
public static boolean isMobileInternetConnected(Context context) {
ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mNetwork = connManager.getActiveNetworkInfo();
return mNetwork != null && mNetwork.isConnected() && mNetwork.getType() == ConnectivityManager.TYPE_MOBILE;
}
Note: Don't Forget to Add Permission
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
来源:https://stackoverflow.com/questions/12240867/how-to-check-if-internet-is-active-with-wifi-network-connected-in-android