基础知识:
Android的wifi信息获取先要自学相关基础知识,下面是相关基础知识。
获取系统wifi服务
// 获取系统wifi服务
WifiManage wm = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);
// 获取当前所连接wifi的信息
WifiInfo wi = wm.getConnectionInfo();
// 获取扫描到的所有wifi信息
List<ScanResult> scanResults = wm.getScanResults();
获取wifi信息的各种方法及异同
这里只简略地提及WifiManage, WifiInfo, ScanResult 这三个类的一些方法,如果非常感兴趣可以去安卓社区看看。废话不多说,Here we go!
WifiManage类wifi信息获取方法
wm.getConnectionInfo(); // 获取当前连接信息
wm.getWifiState(); // 获取当前手机wifi网卡状态
wm.getScanResults(); // 获取扫描到的wifi信息列表(返回类型是链表)
- 手机wifi网卡状态分五种情况
wifi网卡状态 详细说明 WifiManager.WIFI_STATE_ENABLED
wifi网卡可用 WifiManager.WIFI_STATE_DISABLED
wifi网卡不可用 WifiManager.WIFI_STATE_DISABLING
wifi网卡正关闭 WifiManager.WIFI_STATE_ENABLING
wifi网卡正打开 WifiManager.WIFI_STATE_UNKNOWN
状态未知
- 对应手机要开的权限如下:
权限代码 详细说明 ACCESS_WIFI_STATE 允许程序获得wifi的状态信息 INTERNET 允许程序获得手机网络权限 CHANGE_NETWORK_STATE 允许应用程序改变wifi连接状态
WifiInfo类方法
wi.getSSID(); // 获取当前连接wifi的名词
wi.getBSSID(); // 获取路由器Mac地址,String类型
wi.getMacAddress(); // 获取本机Mac地址
wi.getRssi(); // 获取当前连接wifi的信号强度
wi.getLinkSpeed(); // 获取连接速度
WifiInfo.LINK_SPEED_UNITS; // 连接速度单位
wi.getRssi()
获取的就是所连接wifi的RSSI1
ScanResult类方法
scanResult.SSID();
scanResult.BSSID();
scanResult.level(); // 信号强度(原始数据)
Wif