在我的Android應用程序中,我想測試用戶是否可以訪問互聯網。我知道我能夠測試他是否連接到無線或3G/4G等,但也許用戶連接到本地網絡,並且無法訪問互聯網。Android:測試設備是否可以訪問互聯網
我應該嘗試一個「平」到谷歌,以確保他可以下載任何東西或確實存在一個功能,確保手機有互聯網?
謝謝。
在我的Android應用程序中,我想測試用戶是否可以訪問互聯網。我知道我能夠測試他是否連接到無線或3G/4G等,但也許用戶連接到本地網絡,並且無法訪問互聯網。Android:測試設備是否可以訪問互聯網
我應該嘗試一個「平」到谷歌,以確保他可以下載任何東西或確實存在一個功能,確保手機有互聯網?
謝謝。
如果您想要檢查用戶是否在他/她已連接的情況下訪問互聯網,請嘗試通過一些超時訪問像谷歌這樣的網站。
URL url = new URL("https://google.com");
HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
urlc.setRequestProperty("Connection", "close");
urlc.setConnectTimeout(1000 * 30);
urlc.connect();
if (urlc.getResponseCode() == 200) {
return true;
}
如果您得到超時或錯誤代碼,您可以假設您的應用程序未連接到互聯網。
好吧,這似乎是好的。我會測試你的代碼。非常感謝 – psv 2014-10-20 09:43:37
歡迎您,如果您還有其他問題,請告訴我。 – furkan3ayraktar 2014-10-20 14:09:40
private boolean isNetworkAvailable() {
ConnectivityManager connectivityManager
= (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
AndroidManifest:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
但它已經在這裏找到答案:
請參閱http://stackoverflow.com/questions/12442893/android-networkinfo-always-returns-true-even-if-internet-is-not-available。即使用戶僅連接到本地網絡,isConnected()也會返回true。這是我想避免的問題。 – psv 2014-10-20 09:42:57
的[檢測,如果Android設備具有Internet連接]可能重複(HTTP ://stackoverflow.com/questions/6493517/detect-if-android-device-has-inter網絡連接) – 2014-10-20 09:17:03
是的,謝謝你的鏈接;) – psv 2014-10-20 09:44:24