Android打开WLAN开关的广播状态监听
来源:互联网 发布:淘宝双十一交易额2014 编辑:程序博客网 时间:2024/05/16 13:47
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(); }}
0 0
- Android打开WLAN开关的广播状态监听
- Android 监听设备打开WiFi开关的5中状态和是否已连接WiFi成功的广播
- android监听网络状态的广播
- Android 广播监听WiFi的状态小结
- Android 监听 WiFi 开关状态
- Android 广播监听网络状态
- Android网络状态广播监听
- Android 广播监听网络状态
- Android 广播监听网络状态
- Android广播监听网络状态
- wifi开关常用广播以及监听状态改变
- Android 通过广播监听USB连接状态的改变
- network: android 使用广播监听网络状态
- network: android 使用广播监听网络状态
- android 使用广播监听网络状态
- network: android 使用广播监听网络状态
- android 使用广播监听网络状态
- network: android 使用广播监听网络状态
- opencv2.0 交叉编译
- Android悬浮窗
- (十八)享元模式详解(都市异能版)
- 传统BI为什么注定会失败?
- 2016.12.20 今天公司出的事
- Android打开WLAN开关的广播状态监听
- ubuntu操作系统中如何获取权限
- ADB命令使用技巧
- Qt-Matlab-Opencv配置小记
- [51nod1299]监狱逃离
- 蓝桥杯BASIC-19(完美的代价)
- Android电量和插拔电源状态广播监听
- 从C++到Java(一)
- MyBatis介绍和入门一