NETWORK_STATE_CHANGED_ACTION
时间: 2023-06-22 22:30:01 浏览: 57
"android.net.conn.CONNECTIVITY_CHANGE"是一个过时的广播,现在建议使用"android.net.conn.CONNECTIVITY_ACTION"和"android.net.wifi.WIFI_STATE_CHANGED_ACTION"来监听网络状态的变化。
其中,"android.net.conn.CONNECTIVITY_ACTION"广播会在网络连接状态发生变化时发送,包括网络连接和网络断开两种情况;"android.net.wifi.WIFI_STATE_CHANGED_ACTION"广播则会在WiFi连接状态发生变化时发送。
我们可以在BroadcastReceiver中注册这两种广播来监听网络状态的变化,具体实现方式与之前类似。例如:
```java
public class NetworkChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()) {
// 网络已连接
} else {
// 网络未连接
}
} else if (action.equals(WifiManager.WIFI_STATE_CHANGED_ACTION)) {
int wifiState = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, WifiManager.WIFI_STATE_DISABLED);
if (wifiState == WifiManager.WIFI_STATE_ENABLED) {
// WiFi已连接
} else if (wifiState == WifiManager.WIFI_STATE_DISABLED) {
// WiFi未连接
}
}
}
}
```
在Activity中注册BroadcastReceiver的方式也与之前相同。