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