展会信息港展会大全

我的Android进阶之旅------)Android检测wifi连接状态
来源:互联网   发布日期:2015-09-28 16:05:24   浏览:2090次  

导读:今天要实现监听系统Wifi连接状态,下面代码简化后提取出来的,以备后用。step1. 编写BroadcastReceiverimport android.content.Broadca...

今天要实现监听系统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): 网络连接类型为WIFI

I/@@@@@@@@@@@@NetworkReceiver( 1653): 连接wifi

I/@@@@@@@@@@@@NetworkReceiver( 1653): 连接wifi的信息:

I/@@@@@@@@@@@@NetworkReceiver( 1653):

I/@@@@@@@@@@@@NetworkReceiver( 1653): 获取BSSID属性(所连接的WIFI设备的MAC地址):20:dc:e6:71:10:e6

I/@@@@@@@@@@@@NetworkReceiver( 1653):

I/@@@@@@@@@@@@NetworkReceiver( 1653): 获取SSID 是否被隐藏:false

I/@@@@@@@@@@@@NetworkReceiver( 1653):

I/@@@@@@@@@@@@NetworkReceiver( 1653): 获取IP 地址:192.168.1.115

I/@@@@@@@@@@@@NetworkReceiver( 1653):

I/@@@@@@@@@@@@NetworkReceiver( 1653): 获取连接的速度:48cc:b2:55:58:f2:02

I/@@@@@@@@@@@@NetworkReceiver( 1653):

I/@@@@@@@@@@@@NetworkReceiver( 1653): 获取802.11n 网络的信号:-49

I/@@@@@@@@@@@@NetworkReceiver( 1653):

I/@@@@@@@@@@@@NetworkReceiver( 1653): 获取SSID(所连接的WIFI的网络名称):FORMIKE

I/@@@@@@@@@@@@NetworkReceiver( 1653):

I/@@@@@@@@@@@@NetworkReceiver( 1653): 获取具体客户端状态的信息:COMPLETED

当wifi断开时候的信息:

I/@@@@@@@@@@@@NetworkReceiver( 1653): 无网络连接

I/@@@@@@@@@@@@NetworkReceiver( 1653): 断开wifi

赞助本站

人工智能实验室

相关热词: android开发 教程

AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港