我的Android进阶之旅------)Android检测wifi连接状态

浏览:
字体:
发布时间:2013-12-17 09:37:21
来源:

 

今天要实现监听系统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


 

>更多相关文章
24小时热门资讯
24小时回复排行
资讯 | QQ | 安全 | 编程 | 数据库 | 系统 | 网络 | 考试 | 站长 | 关于东联 | 安全雇佣 | 搞笑视频大全 | 微信学院 | 视频课程 |
关于我们 | 联系我们 | 广告服务 | 免责申明 | 作品发布 | 网站地图 | 官方微博 | 技术培训
Copyright © 2007 - 2024 Vm888.Com. All Rights Reserved
粤公网安备 44060402001498号 粤ICP备19097316号 请遵循相关法律法规
');})();