在我的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