通过广播接收器监视Wifi连接和断开状态

时间:2017-02-19 20:09:00

标签: android wifi state broadcast monitor

我正在开发一个应用程序,我需要一个广播接收器,它将监视wifi连接和断开状态。 我尝试了很多代码,浏览了大量的stackoverflow帖子,但没有成功。 我还没有找到任何正常工作的方法/代码,有些代码根本不工作,有些代码返回错误信息,有些代码正在使广播接收器崩溃/重启等等。 那么,是否有任何完整的证据方法来监控wifi连接/断开状态,适用于从4.0.3 Icecream sandwitch开始的所有Android版本? 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

首先,您需要定义一个可以侦听网络更改事件的广播接收器。

public class NetworkChangeReceiver extends BroadcastReceiver {

    public static final String TYPE_NET_CONNECTIVITY_CHANGE = "android.net.conn.CONNECTIVITY_CHANGE";

    @Override
    public void onReceive(final Context context, Intent intent) {
        if (TYPE_NET_CONNECTIVITY_CHANGE.equals(intent.getAction())) {
            boolean connected = NetworkStatus.isNetworkConnected(context);
            if (connected) {
                //Connected

            } else {
              //Disconnected
            }
        }
    }
}

现在在清单中注册您的接收器,如: -

<application
       ...>
    <receiver android:name=". NetworkChangeReceiver" >
        <intent-filter>
            <action android:name="android.net.wifi.WifiManager.WIFI_STATE_CHANGED_ACTION" />
            <action android:name="android.intent.action.PHONE_STATE" />
        </intent-filter>
    </receiver>

</application>