Android(安卓)WIFI状态监控
16lz
2021-01-26
http://mikewang.blog.51cto.com/3826268/850572
Android 的wifi状态可以分为两大类,两者均可通过广播监听,相应的Action在WifiManager类中:
第一类:有无wifi源及各个状态间转变
可监听 WIFI_STATE_CHANGED_ACTION。(如下图所示,双击图片可放大)
有五种情况:
1-1 disabled
1-2 disabling
1-3 enable
1-4 enabling
1-5 unknown
可通过不同的Extra值,见下图(双击可放大)获得状态常量:
代码如下:
- if(WifiManager.WIFI_STATE_CHANGED_ACTION.equals(action)){//在此监听wifi有无
- intwifiState=intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE,0);
- switch(wifiState){
- caseWifiManager.WIFI_STATE_DISABLED:
- updateWifiStatus(R.drawable.wifi_disable);
- Toast.makeText(mContext,R.string.wifi_disable,
- Toast.LENGTH_LONG).show();
- break;
- caseWifiManager.WIFI_STATE_DISABLING:
- break;
- caseWifiManager.WIFI_STATE_ENABLED:
- updateWifiStatus(R.drawable.wifi_enable);
- Toast.makeText(mContext,R.string.wifi_enable,
- Toast.LENGTH_LONG).show();
- break;
- caseWifiManager.WIFI_STATE_ENABLING:
- break;
- caseWifiManager.WIFI_STATE_UNKNOWN:
- break;
- }
- }
也可通过以下代码实现:
- //另外一种方式
- mWifiMng=(WifiManager)mContext
- .getSystemService(mContext.WIFI_SERVICE);
- switch(mWifiMng.getWifiState()){
- caseWifiManager.WIFI_STATE_DISABLED:
- updateWifiStatus(R.drawable.wifi_disable);
- Toast.makeText(mContext,R.string.wifi_disable,
- Toast.LENGTH_LONG).show();
- break;
- caseWifiManager.WIFI_STATE_DISABLING:
- break;
- caseWifiManager.WIFI_STATE_ENABLED:
- updateWifiStatus(R.drawable.wifi_enable);
- Toast.makeText(mContext,R.string.wifi_enable,
- Toast.LENGTH_LONG).show();
- break;
- caseWifiManager.WIFI_STATE_ENABLING:
- break;
- caseWifiManager.WIFI_STATE_UNKNOWN:
- break;
- }
第二类:wifi是否连接正常
可监听:NETWORK_STATE_CHANGED_ACTION(如下图所示,双击图片可放大)
有两种状况:
2-1连接
2-1未连接
在OnReceiver方法中,通过不同Extra值,获得连接状况,如下图,双击图片放大:
代码如下:
- if(WifiManager.NETWORK_STATE_CHANGED_ACTION.equals(action)){
- ParcelableparcelableExtra=intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
- if(null!=parcelableExtra){
- NetworkInfonetworkInfo=(NetworkInfo)parcelableExtra;
- booleanisConnected=networkInfo.isAvailable();
- updateNetworkStatus();
- }
- }
更多相关文章
- android获取监听SD Card状态的方法
- 如何在xml中直接添加view点击监听(参考rayleung博客)
- Android(安卓)studio连接数据库后出现的问题——insert插入问题
- 分享:android图片浏览器—类微信朋友圈相片浏览【android代码下载
- Android(安卓)Activty使用示例【慢慢更新】
- android 用editview 禁用输入法,涉及到的几个事件
- Android简单实现Socket通信,客户端连接服务器后,服务器向客户端发
- Android(安卓)RatingBar:评价条控件
- Android的HTTP协议