创建一个名为isNetworkAvailable()的辅助方法,该方法将返回true或false,具体取决于网络是否可用.它看起来像这样
private boolean isNetworkAvailable() {
ConnectivityManager manager =
(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = manager.getActiveNetworkInfo();
boolean isAvailable = false;
if (networkInfo != null && networkInfo.isConnected()) {
// Network is present and connected
isAvailable = true;
}
return isAvailable;
}
不要忘记将以下权限添加到您的清单文件中
编辑:上述方法仅检查网络是否可用.它不会检查设备是否可以实际连接到互联网.检查是否存在Internet连接的最佳方法是尝试使用HTTP连接到某个已知服务器
public static boolean checkActiveInternetConnection() {
if (isNetworkAvailable()) {
try {
HttpURLConnection urlc = (HttpURLConnection) (new URL("http://www.google.com").openConnection());
urlc.setRequestProperty("User-Agent", "Test");
urlc.setRequestProperty("Connection", "close");
urlc.setConnectTimeout(1500);
urlc.connect();
return (urlc.getResponseCode() == 200);
} catch (IOException e) {
Log.e(LOG_TAG, "Error: ", e);
}
} else {
Log.d(LOG_TAG, "No network present");
}
return false;
}
顺便说一句,注意不要在主线程上运行上面的方法,否则它将给你的NetworkOnMainThreadException.使用AsyncTask或类似的东西.