WIFI相关的第一个我想讲一下AccessPoint这个类
AccessPoint(接入点) 这个类是一个自己定义的类。用他来记录一个WIFI接入点的信息
一般有以下几个字段
ssid:wifi的名称。
security:安全
rssi:算是wifi信号的强度值,他是一个小于等于0的数,数值越接近于0,信号强度越好。
signal:信号强度值:我们根据rssi转换到这个值,用于显示wifi信号格。
signal这个信号值通过WifiManager.calculateSignalLevel(rssiA,int level);这个方法来转换成我们平常使用的WIFI信号.格。信号值为0-(level-1)
summary:显示当前WIFI的状态,例如,"已保存","密码错误","不在距离范围内"等这些信息.
这个类最好implements Comparable<Object> 对接入点进行排序。根据连接状态,根据信号强度,根据SSID进行排序。
----------------------------------------------------
安全类型
1 无身份验证(开放式)
2共享式(WEP)WEP 即 Wired Equivalent Privacy 的缩写,表示有线等效保密。,容易遭到破解,于是WPA加密方式应运而生
3WPA WPA2 -个人、WPA – 个人、WPA2 – 企业、WPA – 企业这四种安全类型都属于 WPA,WPA2 是 WPA 的升级版 WPA 和 WPA2 都采用 TKIP 或者 AES 加密方式,比 WEP 的加密级别高,因而更安全。AES 加密方式时,密码(网络安全密钥)可以设置 8~64 个字母、数字和英文标点符号的字符组合做为密码)。一般密码越长越安全。 而 TKIP(临时密钥完整性)协议,是 IEEE 802.11i 标准中的临时过渡方案,一般不用。
之所以又分为个人版和企业版,是考虑到企业往往需要更高的安全级别,而个人则希望能有较高的安全级别但同时又不至于复杂到没法用的地步。
- 企业版需要有专用的服务器来发放和验证证书,不使用密码;
- 个人版则不需要专用的证书,可以使用预先设定的密码(预共享密钥,pre-shared key,缩写 PSK)。所以很多地方又将 WPA – 个人或者 WPA2 – 个人称为 WPA -PSK 和 WPA2 – PSK。
/**
* 获取有config不为空的wifi加密方式
* @param config
* @return
*/
static int getSecurity(WifiConfiguration config) {
if (config.allowedKeyManagement.get(KeyMgmt.WPA_PSK)) {
return SECURITY_PSK;
}
if (config.allowedKeyManagement.get(KeyMgmt.WPA_EAP)
|| config.allowedKeyManagement.get(KeyMgmt.IEEE8021X)) {
return SECURITY_EAP;
}
return (config.wepKeys[0] != null) ? SECURITY_WEP : SECURITY_NONE;
}
//这个加密方式与上一个的区别在于是获取扫描获取到的WIFI的加密方式
private static int getSecurity(ScanResult result) {
if (result.capabilities.contains("WEP")) {
return SECURITY_WEP;
} else if (result.capabilities.contains("PSK")) {
return SECURITY_PSK;
} else if (result.capabilities.contains("EAP")) {
return SECURITY_EAP;
}
return SECURITY_NONE;
}
下个博客我会记录下WIFI的其他相关类