我的Android进阶之旅------)Android检测wifi连接状态
今天要实现监听系统Wifi连接状态,下面代码简化后提取出来的,以备后用。
step1. 编写BroadcastReceiver
import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.net.NetworkInfo.State;import android.net.wifi.WifiInfo;import android.net.wifi.WifiManager;import android.text.format.Formatter;import android.util.Log;import com.canplay.systemui.QuickSettings;/** * @author ouyangpeng * @link http://blog.csdn.net/ouyang_peng */public class NetworkReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { ConnectivityManager connectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo net = connectivityManager.getActiveNetworkInfo(); if (net == null) { Log.i(@@@@@@@@@@@@NetworkReceiver, 无网络连接); } else { Log.i(@@@@@@@@@@@@NetworkReceiver, 网络连接类型为 + net.getTypeName()); } // wifi连接状态 State wifi = connectivityManager.getNetworkInfo( ConnectivityManager.TYPE_WIFI).getState(); if (wifi == State.CONNECTED || wifi == State.CONNECTING) { Log.i(@@@@@@@@@@@@NetworkReceiver, 连接wifi); // wifi管理 WifiManager wifiManager = (WifiManager) context .getSystemService(Context.WIFI_SERVICE); WifiInfo wifiInfo = wifiManager.getConnectionInfo(); StringBuffer sb = new StringBuffer(); sb.append(获取BSSID属性(所连接的WIFI设备的MAC地址): + wifiInfo.getBSSID()); // sb.append(getDetailedStateOf() 获取客户端的连通性:); sb.append(获取SSID 是否被隐藏: + wifiInfo.getHiddenSSID()); // IP地址转化为字符串格式 sb.append(获取IP 地址: + Formatter.formatIpAddress(wifiInfo.getIpAddress())); sb.append(获取连接的速度: + wifiInfo.getLinkSpeed()); sb.append(获取Mac 地址(手机本身网卡的MAC地址): + wifiInfo.getMacAddress()==null?No Wifi Device:wifiInfo.getMacAddress()); sb.append(获取802.11n 网络的信号: + wifiInfo.getRssi()); sb.append(获取SSID(所连接的WIFI的网络名称): + wifiInfo.getSSID()); sb.append(获取具体客户端状态的信息: + wifiInfo.getSupplicantState()); Log.i(@@@@@@@@@@@@NetworkReceiver, 连接wifi的信息:+sb.toString()); } else if (wifi == State.DISCONNECTED || wifi == State.DISCONNECTING) { Log.i(@@@@@@@@@@@@NetworkReceiver, 断开wifi); } }}
step2. 配置BroadcastReceiver和相关权限
下面是通过logcat打印出来的信息
当wifi连接上时候的信息:
I/@@@@@@@@@@@@NetworkReceiver( 1653): 网络连接类型为WIFII/@@@@@@@@@@@@NetworkReceiver( 1653): 连接wifiI/@@@@@@@@@@@@NetworkReceiver( 1653): 连接wifi的信息:I/@@@@@@@@@@@@NetworkReceiver( 1653): I/@@@@@@@@@@@@NetworkReceiver( 1653): 获取BSSID属性(所连接的WIFI设备的MAC地址):20:dc:e6:71:10:e6I/@@@@@@@@@@@@NetworkReceiver( 1653): I/@@@@@@@@@@@@NetworkReceiver( 1653): 获取SSID 是否被隐藏:falseI/@@@@@@@@@@@@NetworkReceiver( 1653): I/@@@@@@@@@@@@NetworkReceiver( 1653): 获取IP 地址:192.168.1.115I/@@@@@@@@@@@@NetworkReceiver( 1653): I/@@@@@@@@@@@@NetworkReceiver( 1653): 获取连接的速度:48cc:b2:55:58:f2:02I/@@@@@@@@@@@@NetworkReceiver( 1653): I/@@@@@@@@@@@@NetworkReceiver( 1653): 获取802.11n 网络的信号:-49I/@@@@@@@@@@@@NetworkReceiver( 1653): I/@@@@@@@@@@@@NetworkReceiver( 1653): 获取SSID(所连接的WIFI的网络名称):FORMIKEI/@@@@@@@@@@@@NetworkReceiver( 1653): I/@@@@@@@@@@@@NetworkReceiver( 1653): 获取具体客户端状态的信息:COMPLETED
当wifi断开时候的信息:
I/@@@@@@@@@@@@NetworkReceiver( 1653): 无网络连接I/@@@@@@@@@@@@NetworkReceiver( 1653): 断开wifi
>更多相关文章
首页推荐
佛山市东联科技有限公司一直秉承“一切以用户价值为依归
- 01-11全球最受赞誉公司揭晓:苹果连续九年第一
- 12-09罗伯特·莫里斯:让黑客真正变黑
- 12-09谁闯入了中国网络?揭秘美国绝密黑客小组TA
- 12-09警示:iOS6 惊现“闪退”BUG
- 05-06TCL科技:预计大尺寸面板价格上涨动能有望延
- 05-06新加坡电信Optus任命新首席执行官以重建品牌
- 05-06微软宣布为消费级用户账户提供安全密钥支持
- 05-06当好大数据产业“守门员”(筑梦现代化 共绘
- 04-29通用智能人“通通”亮相中关村论坛
相关文章
24小时热门资讯
24小时回复排行
热门推荐
最新资讯
操作系统
黑客防御