WIFI变更的广播行动

Cil*_*nco 5 android android-broadcast

在我的应用程序中,我必须在设备连接或断开WIFI网络时收到通知.为此,我必须使用a BroadcastReceiver但在阅读了不同的文章和问题后,我有点困惑,我应该使用哪个广播操作.在我看来,我有三个选择:

为了减少资源,我真的只想在设备CONNECTED进入WIFI网络(并且它已经收到IP地址)或设备有DISCONNECTED来自一个时收到通知.我不关心其他州等CONNECTING.

那么您认为我应该使用的最佳广播动作是什么?而且我必须manully过滤事件(因为我receieve更多然后CONNECTEDDISCONNECTED)的onReceive

编辑:正如我在下面的评论中所指出的,我认为SUPPLICANT_CONNECTION_CHANGE_ACTION对我来说是最好的选择,但我的申请从未被解雇或收到.其他人对此广播也有同样的问题,但从未提出真正的解决方案(实际上使用了其他广播).有什么想法吗?

Rah*_*rma 1

请尝试

@Override
protected void onResume() {
    super.onResume();
    IntentFilter filter = new IntentFilter();
    filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
    filter.addAction("android.net.wifi.STATE_CHANGE");
    registerReceiver(networkChangeReceiver, filter);
}

@Override
protected void onDestroy() {
    unregisterReceiver(networkChangeReceiver);
    super.onDestroy();
}
Run Code Online (Sandbox Code Playgroud)

BroadcastReceiver networkChangeReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {

        if (!AppUtils.hasNetworkConnection(context)) {
            showSnackBarToast(getNetworkErrorMessage());
        }

    }
};
Run Code Online (Sandbox Code Playgroud)

我正在使用这个,它对我有用。希望它能帮助你。