Android打开WLAN开关的广播状态监听

Android中WLAN的广播监听的是WLAN状态的改变 ,Action是WifiManager.WIFI_STATE_CHANGED_ACTION,WLAN的状态系统定义了5种,分别是

WIFI_STATE_DISABLED    WLAN已经关闭WIFI_STATE_DISABLING   WLAN正在关闭WIFI_STATE_ENABLED     WLAN已经打开WIFI_STATE_ENABLING    WLAN正在打开WIFI_STATE_UNKNOWN     未知

下面看实例代码:

public class WLANListener {    private Context mContext;    private WLANBroadcastReceiver receiver;    private WLANStateListener mWLANStateListener;    public WLANListener(Context context) {        mContext = context;        receiver = new WLANBroadcastReceiver();    }    public void register(WLANStateListener listener) {        mWLANStateListener = listener;        if (receiver != null) {            IntentFilter filter = new IntentFilter();            filter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);            mContext.registerReceiver(receiver, filter);        }    }    public void unregister() {        if (receiver != null) {            mContext.unregisterReceiver(receiver);        }    }    private class WLANBroadcastReceiver extends BroadcastReceiver {        @Override        public void onReceive(Context context, Intent intent) {            if (intent != null) {                String action = intent.getAction();                /** wifi状态改变 */                if (WifiManager.WIFI_STATE_CHANGED_ACTION.equals(action)) {                    if (mWLANStateListener != null) {                        Log.e("zhang", "WLANBroadcastReceiver --> onReceive--> WIFI_STATE_CHANGED_ACTION");                        mWLANStateListener.onStateChanged();                    }                }                /**                 * WIFI_STATE_DISABLED    WLAN已经关闭                 * WIFI_STATE_DISABLING   WLAN正在关闭                 * WIFI_STATE_ENABLED     WLAN已经打开                 * WIFI_STATE_ENABLING    WLAN正在打开                 * WIFI_STATE_UNKNOWN     未知                 */                int state = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, 0);                switch (state) {                    case WifiManager.WIFI_STATE_DISABLED:                        if (mWLANStateListener != null) {                            Log.e("zhang", "WLANBroadcastReceiver --> onReceive--> WIFI_STATE_DISABLED");                            mWLANStateListener.onStateDisabled();                        }                        break;                    case WifiManager.WIFI_STATE_DISABLING:                        if (mWLANStateListener != null) {                            Log.e("zhang", "WLANBroadcastReceiver --> onReceive--> WIFI_STATE_DISABLING");                            mWLANStateListener.onStateDisabling();                        }                        break;                    case WifiManager.WIFI_STATE_ENABLED:                        if (mWLANStateListener != null) {                            Log.e("zhang", "WLANBroadcastReceiver --> onReceive--> WIFI_STATE_ENABLED");                            mWLANStateListener.onStateEnabled();                        }                        break;                    case WifiManager.WIFI_STATE_ENABLING:                        if (mWLANStateListener != null) {                            Log.e("zhang", "WLANBroadcastReceiver --> onReceive--> WIFI_STATE_ENABLING");                            mWLANStateListener.onStateEnabling();                        }                        break;                    case WifiManager.WIFI_STATE_UNKNOWN:                        if (mWLANStateListener != null) {                            Log.e("zhang", "WLANBroadcastReceiver --> onReceive--> WIFI_STATE_UNKNOWN");                            mWLANStateListener.onStateUnknow();                        }                        break;                }            }        }    }    public interface WLANStateListener {        void onStateChanged();        void onStateDisabled();        void onStateDisabling();        void onStateEnabled();        void onStateEnabling();        void onStateUnknow();    }}

在MianActivity中调用:

public class MainActivity extends AppCompatActivity {    private WLANListener listener;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        listener = new WLANListener(this);        listener.register(new WLANListener.WLANStateListener() {            @Override            public void onStateChanged() {                Log.e("zhang", "MainActivity --> onStateChanged--> ");            }            @Override            public void onStateDisabled() {                Log.e("zhang", "MainActivity --> onStateDisabled--> ");            }            @Override            public void onStateDisabling() {                Log.e("zhang", "MainActivity --> onStateDisabling--> ");            }            @Override            public void onStateEnabled() {                Log.e("zhang", "MainActivity --> onStateEnabled--> ");            }            @Override            public void onStateEnabling() {                Log.e("zhang", "MainActivity --> onStateEnabling--> ");            }            @Override            public void onStateUnknow() {                Log.e("zhang", "MainActivity --> onStateUnknow--> ");            }        });    }    @Override    protected void onDestroy() {        if (listener != null) {            listener.unregister();        }        super.onDestroy();    }}

更多相关文章

  1. 2013.03.19(5)———android 获取状态栏的高度
  2. Android(安卓)中文 API (30) ―― CompoundButton.OnCheckedChange
  3. Android-基本控件(SeekBar 可拖动 滚动条的使用)
  4. Android中检测手机制式和移动网络类型
  5. Android:打开程序的全屏页面
  6. Android四种Activity的加载模式
  7. Android监听来电和去电的实现方法
  8. Android初级教程小案例之单选框RadioGroup与复选框CheckBox
  9. Android(安卓)渐变色沉浸式状态栏

随机推荐

  1. 通过header函数设置响应头解决php跨域问
  2. PHP安装BCMath扩展
  3. 浅析PHP类的自动加载和命名空间
  4. 关于在php中使用curl发送get请求时参数传
  5. 基于AIML的PHP聊天机器人
  6. PHP多任务秒级定时器的实现方法
  7. 四种好用的PHP自定义加密函数(可逆/不可逆
  8. php实现上传图片功能
  9. laravel输出xml数据,php输出xml格式数据
  10. php上传文件找不到临时文件夹(解决方法)