如何检查Android设备是否已连接到互联网连接?目前,我正在使用以下代码:
ConnectivityManager connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
boolean isConnectedToNetwork = (networkInfo != null && networkInfo.isConnected());
但是,上述代码的问题在于它仅检查设备是否连接到网络。它不会检查是否有互联网连接。例如,如果设备连接到没有互联网访问权限的路由器,则isConnectedToNetwork
仍会返回true,因为从技术上讲,您通过路由器连接到网络。只是路由器没有互联网连接。
我所看到的一个建议是尝试连接到一个很有可能被关闭的网站。这方面的一个例子是www.google.com。但是,我认为这不是适当的解决方案。首先,如果用户使用GPRS并且因其互联网使用而按每KB收费,则他将承担额外费用。其次,我不认为使用像这样的第三方网站是合乎道德的。这真的是检查互联网连接的唯一方法,还是可以提出不同的解决方案?没有他们的同意,是否可以像这样连接谷歌?如何检查设备是否具有互联网连接?
答案 0 :(得分:2)
public boolean isOnline(Context context) {
try {
ConnectivityManager cm = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE);
if (cm.getActiveNetworkInfo().isConnectedOrConnecting()) {
URL url = new URL("http://www.ripansekhon.blogspot.com");
HttpURLConnection urlc = (HttpURLConnection) url .openConnection();
urlc.setRequestProperty("User-Agent", "test");
urlc.setRequestProperty("Connection", "close");
urlc.setConnectTimeout(1000); // mTimeout is in seconds
urlc.connect();
if (urlc.getResponseCode() == 200) {
return true;
} else {
return false;
}
}
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
检查此功能,检查互联网是否正常工作,表示网站是否开通 希望这个代码可以帮助所有想要上网的人在网络连接之前是否工作
答案 1 :(得分:1)
使用ConnectivityManager.TYPE_WIFI
ConnectivityManager connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
boolean isConnectedToNetwork = (networkInfo != null && networkInfo.isConnected());
答案 2 :(得分:0)
public boolean checkInternetConnection() {
ConnectivityManager conMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if (conMgr.getActiveNetworkInfo() != null
&& conMgr.getActiveNetworkInfo().isAvailable()
&& conMgr.getActiveNetworkInfo().isConnected()) {
Log.d("Internet Connection Present","");
isFound=true;
} else {
Log.d("Internet Connection Not Present","");
isFound= false;
}
return isFound;
}