在 Android 开发中,实时感知网络状态对于提升用户体验至关重要。以下方案基于 ConnectivityManager 实现网络可用性的判断与状态监听。
权限配置
首先需在清单文件中添加网络状态访问权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
核心工具方法
为了复用逻辑,建议封装静态工具类。以下是常用的判断方法:
1. 通用网络检查
判断当前设备是否有任何网络连接。
public boolean isNetworkConnected(Context context) {
if (context == null) return false;
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = cm.getActiveNetworkInfo();
return info != null && info.isAvailable();
}
2. 特定网络类型检查
区分 WiFi 和移动数据状态。
public boolean isWifiConnected(Context context) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo wifiInfo = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
return wifiInfo != null && wifiInfo.isAvailable();
}
public boolean isMobileConnected(Context context) {
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
mobileInfo != && mobileInfo.isAvailable();
}

