我正在研究在從服務器填充數據之前必須具有互聯網連接的應用程序。我有一個bool方法來檢查是否有可用的網絡連接,但它不能正常工作。如何檢測Android手機是否可以訪問互聯網即使移動數據已打開
這裏是什麼是要做到:
1:檢查WLAN網絡,並設有一個網絡接入
2:檢查是移動數據啓用並有一個網絡訪問
問題(BUG):
目前,我沒有互聯網接入,但我的移動數據,而不是GETT ON,如果我的Toast消息沒有連接到互聯網,它仍然會告訴我,我有互聯網接入,但我無法訪問互聯網。
我檢查了其他所有可能的方法,但他們都有與我正在使用的方法相關的方法。
問題: 我怎麼可以檢測是否有即使移動數據是啓用的主動上網。
我的代碼:
private boolean haveConnected() {
//Vars
boolean wifiIsConnected = false;
boolean mobileDataIsConnected = false;
State checkMobile;
State checkWifi;
ConnectivityManager connectManager;
//init
connectManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
checkMobile = connectManager.getNetworkInfo(0).getState();
checkWifi = connectManager.getNetworkInfo(1).getState();
if (checkMobile == NetworkInfo.State.CONNECTED) {
mobileDataIsConnected = true;
} else if (checkWifi == NetworkInfo.State.CONNECTED) {
wifiIsConnected = true;
}
return wifiIsConnected || mobileDataIsConnected;
}
的http://計算器.com/questions/17717749/check-for-active-internet-connection-android –
我覺得你不能直接做。你必須提出一個請求,並得到一個有效的響應,以確保互聯網連接是積極的 – Chol
試過這樣,但墜毀>> – hatboy