联网工具类 1.判断网络是否可用 2.判断网络是否已连接 3.获取网络类型 4.判断是否是WiFi网络 5. 判断是否是Mobile网络
// 判断网络是否可用
public static boolean isNetworkAvailable(Context context) {
// ConnectivityManager:网络连接管理器.负责回应网络的连接状态.
// ①.Monitor network connections (Wi-Fi, GPRS, UMTS, etc.)
// 监视网络连接;
// ②.Send broadcast intents when network connectivity changes
// 当网络连接发生改变的时候发送一个广播意图;
// ③.Attempt to "fail over" to another network when connectivity to a
// network is lost
// 当与一个网络断开的时候,尝试着进行"故障转移"到另一个网络;
// ④.Provide an API that allows applications to query the coarse-grained
// or fine-grained state of the available networks
// 提供了一套API来查询当前可用的网络的"好与坏".
// ⑤.Provide an API that allows applications to request and select
// networks for their data traffic
// 提供了一套API供应用程序来进行网络中数据的传递.
ConnectivityManager manager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
// 得到一个网络信息类
NetworkInfo info = manager.getActiveNetworkInfo();
if (info != null) {
// 判断网络是否可用
return info.isAvailable();
}
return false;
}
=====================================================================
// 判断网络是否已连接
public static boolean isNetworkConnected(Context context) {
ConnectivityManager manager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = manager.getActiveNetworkInfo();
if (info != null) {
return info.isConnected();
}
return false;
}
=====================================================================
// 获取网络类型
public static String getNetworkType(Context context) {
ConnectivityManager manager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = manager.getActiveNetworkInfo();
if (info != null) {
// 返回网络类型.
// int type = info.getType();
// 返回人类可读的网络类型
return info.getTypeName();
}
return null;
}
=====================================================================
// 判断是否是WiFi网络
@SuppressWarnings("deprecation")
public static boolean isWifiNetwork(Context context) {
ConnectivityManager manager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = manager
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (networkInfo != null && networkInfo.isConnected()) {
return true;
}
return false;
}
=====================================================================
// 判断是否是Mobile网络
@SuppressWarnings("deprecation")
public static boolean isMobileNetwork(Context context) {
ConnectivityManager manager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = manager
.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (networkInfo != null && networkInfo.isConnected()) {
return true;
}
return false;
}
}