package hillfly.wifichat.broadcast;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.NetworkInfo;
import android.net.wifi.WifiManager;
public class WifiapBroadcast extends BroadcastReceiver {
private NetworkInfo mNetworkInfo;
private NetWorkChangeListener mListener;
public WifiapBroadcast(NetWorkChangeListener listener) {
mListener = listener;
}
public void onReceive(Context paramContext, Intent paramIntent) {
// wifi开关
if (WifiManager.WIFI_STATE_CHANGED_ACTION.equals(paramIntent.getAction())) {
int wifiState = paramIntent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, 0);
switch (wifiState) {
case WifiManager.WIFI_STATE_DISABLED:
case WifiManager.WIFI_STATE_ENABLED:
mListener.wifiStatusChange();
break;
}
}
// 连接wifi
else if (WifiManager.NETWORK_STATE_CHANGED_ACTION.equals(paramIntent.getAction())) {
mNetworkInfo = paramIntent.getParcelableExtra("networkInfo");
/**
* 当 DetailedState 变化为 CONNECTED 时,说明已连接成功,则通知Handler更新
* 可避免WifiapActivity里出现重复获取IP的问题
*/
if (mNetworkInfo.getDetailedState() == NetworkInfo.DetailedState.CONNECTED) {
mListener.WifiConnected();
}
}
}
public static abstract interface NetWorkChangeListener {
/** Wifi连接成功 **/
public abstract void WifiConnected();
/** Wifi状态改变 **/
public abstract void wifiStatusChange();
}
}