2014-10-20 52 views
0

在我的Android應用程序中,我想測試用戶是否可以訪問互聯網。我知道我能夠測試他是否連接到無線或3G/4G等,但也許用戶連接到本地網絡,並且無法訪問互聯網。Android:測試設備是否可以訪問互聯網

我應該嘗試一個「平」到谷歌,以確保他可以下載任何東西或確實存在一個功能,確保手機有互聯網?

謝謝。

+1

的[檢測,如果Android設備具有Internet連接]可能重複(HTTP ://stackoverflow.com/questions/6493517/detect-if-android-device-has-inter網絡連接) – 2014-10-20 09:17:03

+0

是的,謝謝你的鏈接;) – psv 2014-10-20 09:44:24

回答

0

如果您想要檢查用戶是否在他/她已連接的情況下訪問互聯網,請嘗試通過一些超時訪問像谷歌這樣的網站。

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; 
    } 

如果您得到超時或錯誤代碼,您可以假設您的應用程序未連接到互聯網。

+0

好吧,這似乎是好的。我會測試你的代碼。非常感謝 – psv 2014-10-20 09:43:37

+0

歡迎您,如果您還有其他問題,請告訴我。 – furkan3ayraktar 2014-10-20 14:09:40

0
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" /> 

但它已經在這裏找到答案:

Here

+0

請參閱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

相關問題