android 获取wifi开光状态,连接状态,信号强度
2016-08-17 20:53
405 查看
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的信息。
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的信息。
相关文章推荐
- Android 获取 Wifi 信号强度,检测是 Wifi 或者流量,获取手机电池电量及充电状态
- Wince获取Wifi的设备名、连接状态和信号强度
- Wince获取Wifi的设备名、连接状态和信号强度
- Android 获取 Wifi 信号强度,检测是 Wifi 或者流量,获取手机电池电量及充电状态
- CE获取Wifi的设备名、连接状态和信号强度
- CE获取Wifi的设备名、连接状态和信号强度
- CE获取Wifi的设备名、连接状态和信号强度
- Wince获取Wifi的设备名、连接状态和信号强度
- Wince获取Wifi的设备名、连接状态和信号强度
- WinCE获取Wifi的设备名、连接状态和信号强度
- Android编程获取网络连接状态(3G/Wifi)及调用网络配置界面
- Android 得到当前已连接的wifi的信号强度
- android 获取wifi 信号质量,信号强度
- Android编程获取网络连接状态(3G/Wifi)及调用网络配置界面
- android中 获取WiFi信息并计算wifi的信号强度
- android 得到当前已连接的wifi的信号强度
- Android编程获取网络连接状态(3G/Wifi)及调用网络配置界面
- Android编程获取网络连接状态(3G/Wifi)及调用网络配置界面
- 关于获取android信号强度和电池状态变化图标修改的方法
- android 得到当前已连接的wifi的信号强度