在我的android应用程序中,我想测试一下用户是否可以访问互联网。我知道我能测试他是否连接了无线网络或3G/4G等.但是,也许用户已经连接到本地网络,并且无法访问互联网。
我是否应该试着向谷歌"ping“一下,以确保他可以下载任何东西,或者它是否存在确保手机有互联网的功能?
谢谢。
发布于 2014-10-20 09:23:28
如果您想要检查用户是否可以访问internet,而s/他有连接,请尝试访问像google这样的网站,并进行一些超时。
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;
}
如果您得到超时或错误代码,您可以假设您的应用程序没有连接到互联网。
发布于 2014-10-20 09:27:51
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" />
但这里已经有了答案:
https://stackoverflow.com/questions/26462142
复制相似问题