5
此代码始终返回true。这在按下登录按钮时被调用。我第一次尝试与WiFi连接(在模拟器上)。它返回true,然后我断开wifi然后尝试。它仍然返回true。即使互联网不可用,Android networkinfo始终返回true
public static boolean isNetworkAvailable(Context context) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = cm.getActiveNetworkInfo();
// if no network is available networkInfo will be null
// otherwise check if we are connected
if (networkInfo != null && networkInfo.isConnected()) {
State network = networkInfo.getState();
Log.d("here", "true");
return (network == NetworkInfo.State.CONNECTED || network == NetworkInfo.State.CONNECTING);
}
Log.d("here1", "false");
return false;
}
因此,没有直接的方法可以判断互联网是否可用? –
没有。问题在于“网络”在这里是一个定义问题。你可以连接到无线网络,完全访问内部网,这可以为你的应用程序。你也可以坐在一个非常严格的防火墙后面,例如阻止www.facebook.com来保持员工的生产力。 您需要明确检查您感兴趣的服务或常用网址。 我的连通性服务不是火箭科学,当我有一点时间时,我会清理它并将它发布到这里 - 可能不是在星期一之前。 – 323go
伟大的答案请问,如果我引用你的答案,只要它适合,因为它让我疯狂的+1 – shareef