android 获取wifi开光状态,连接状态,信号强度

android提供了系统广播

1、WifiManager.WIFI_STATE_CHANGED_ACTION     系统wifi开关广播

2、WifiManager.NETWORK_STATE_CHANGED_ACTION      wifi连接状态广播


1、wifi开关广播

广播传来的intent传递了一个状态值   int wifistate = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE,WifiManager.WIFI_STATE_DISABLED);

有这么几种:

WifiManager.WIFI_STATE_DISABLED   系统关闭了wifi

WifiManager.WIFI_STATE_ENABLED    系统打开了wifi

wifiManager.WIFI_STATE_DISABLING
wifiManager.WIFI_STATE_ENABLING


2、wifi连接状态广播

广播传来的intent传递了一个NetworkInfo对象 NetworkInfo info = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);

这个NetworkInfo 对象有几种状态值   int state=iinfo.getState();

NetworkInfo.State.DISCONNECTED    wifi未连接上

NetworkInfo.State.CONNECTED)      wifi连接上了

还有几种这里不列出

3、获取wifi信息

WifiManager wifiManager =(WifiManager)context.getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();

wifiinfo.getBSSID();

wifiinfo.getSSID();  连接的wifi名字

wifiinfo.getIpAddress();获取IP地址。

wifiinfo.getMacAddress();获取MAC地址。

wifiinfo.getNetworkId();获取网络ID。

wifiinfo.getLinkSpeed();获取连接速度,可以让用户获知这一信息。

wifiinfo.getRssi();获取RSSI,RSSI就是接受信号强度指示。

这里得到信号强度就靠wifiinfo.getRssi();这个方法。得到的值是一个0到-100的区间值,是一个int型数据,其中0到-50表示信号最好,-50到-70表示信号偏差,小于-70表示最差,有可能连接不上或者掉线,一般Wifi已断则值为-200。

最后介绍下广播注册和接收

继承BroadcastReceiver 即可接收到注册过的广播

1、接收

private class ChangeBroadcast extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {

String strAction=intent.getAction();

...........

}

}

2、注册

ChangeBroadcast  broadcast== new ChangeBroadcast ();

IntentFilter intentFilter = new IntentFilter((WifiManager.WIFI_STATE_CHANGED_ACTION);
intentFilter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION); // wifi
intentFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION); // wifi
mActivity.registerReceiver(broadcast, intentFilter);

3、记住注销

mActivity.unregisterReceiver(broadcast);


ok,这样基本可以实现系统是否打开了wifi,打开了wifi后是否连接上了wifi,连接上了可以获得这个wifi的信息。








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值