通过广播接收器监控 Wifi 连接和断开状态
Monitor for Wifi Connected and Disconnected States via Broadcast Receiver
我正在开发一个应用程序,我需要一个广播接收器来监视 wifi 连接和断开状态。
我尝试了很多代码,浏览了很多 Whosebug 帖子,但没有成功。
我还没有发现任何这样的 method/code 可以正常工作,有些代码根本不工作,有些返回错误信息,有些正在制作广播接收器 crash/restart 等等。
那么,是否有任何完整的方法来监控 wifi connected/disconnected 状态,适用于从 4.0.3 Icecream sandwitch 开始的所有 android 版本?
任何帮助将不胜感激。
首先,您需要定义一个可以监听网络变化事件的广播接收器。
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>
我正在开发一个应用程序,我需要一个广播接收器来监视 wifi 连接和断开状态。 我尝试了很多代码,浏览了很多 Whosebug 帖子,但没有成功。 我还没有发现任何这样的 method/code 可以正常工作,有些代码根本不工作,有些返回错误信息,有些正在制作广播接收器 crash/restart 等等。 那么,是否有任何完整的方法来监控 wifi connected/disconnected 状态,适用于从 4.0.3 Icecream sandwitch 开始的所有 android 版本? 任何帮助将不胜感激。
首先,您需要定义一个可以监听网络变化事件的广播接收器。
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>