2014-10-20 80 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

相关问题