-2
嗨我應用程序崩潰,當我從應用程序,因爲我的手機連接到其他手機的WiFi熱點,在移動數據被禁用,如果我檢查WiFi的連接狀態它將返回true,所以我允許命中服務器和我的應用程序崩潰... 告訴我如何處理這種類型的場景。當WIFI打開但沒有數據連接時,如何在android中檢查互聯網連接?
嗨我應用程序崩潰,當我從應用程序,因爲我的手機連接到其他手機的WiFi熱點,在移動數據被禁用,如果我檢查WiFi的連接狀態它將返回true,所以我允許命中服務器和我的應用程序崩潰... 告訴我如何處理這種類型的場景。當WIFI打開但沒有數據連接時,如何在android中檢查互聯網連接?
使用此方法來檢查,如果你的網絡工作正常
public static boolean hasActiveInternetConnection(Context context) {
if (isNetworkAvailable(context)) {
try {
HttpURLConnection urlc = (HttpURLConnection) (new URL("http://www.google.com").openConnection());
urlc.setRequestProperty("User-Agent", "Test");
urlc.setRequestProperty("Connection", "close");
urlc.setConnectTimeout(1500);
urlc.connect();
return (urlc.getResponseCode() == 200);
} catch (IOException e) {
Log.e(LOG_TAG, "Error checking internet connection", e);
}
} else {
Log.d(LOG_TAG, "No network available!");
}
return false;
}
請務必不要運行在主線程的代碼,否則你會得到一個NetworkOnMainThread異常(在安卓3.0或更高版本)。改爲使用AsyncTask或Runnable。
嗨,我已經試過這一個這將花費太長的時間來檢查狀態 – Mani
你不使用連接超時機制?或者webserver返回的響應?或者是http連接狀態碼? – Skynet
修復導致您的應用崩潰的錯誤。 –
嗨告訴我如何找到我們的無線互聯網連接 – Mani