1.註冊
final IntentFilter WifiFilter = new IntentFilter();
WifiFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
WifiFilter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
WifiFilter.addAction(WifiManager.SUPPLICANT_STATE_CHANGED_ACTION);
context.registerReceiver(wifiStateReceiver, WifiFilter);
2.接受廣播
private final BroadcastReceiver wifiStateReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (WifiManager.WIFI_STATE_CHANGED_ACTION.equals(intent.getAction())) {
int wifiState = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, 0);
switch (wifiState) {
case WifiManager.WIFI_STATE_DISABLED:
android.util.Log.i(mTag, "WIFI_STATE_DISABLED");
if((mNotifyManager != null) && (mNotifyManager.getNotificationChannel("my_channel_id") == null)){
mNotifyManager.cancel(WFC_NOTIFICATION);
}
break;
}
}
}
};
3.取消註冊
private void stopReceiver() {
if (wifiStateReceiver != null) {
mContext.unregisterReceiver(wifiStateReceiver);
}
}
還需要再AndroidManifest.xml裏添加一些網絡權限
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />