【聊聊Wi-Fi那些事】系列专题一

318 阅读4分钟
原文链接: mp.weixin.qq.com

最近在研究一个关于网络的demo,包括的内容有Wifi状态查询,ARP扫描,建立热点,Wifi直连,以及网络抓包等,我想把它们写在一个demo中分享出来。在分享demo之前,我会把demo开发过程中的笔记分享出来,供大家一起学习,所以开了这个专题【聊聊Wi-Fi那些事】,感兴趣的朋友可以持续关注,我争取在一个月内写完。

01

基本概念

在这里我会写介绍几个基本概念,我们经常都会用到ScanResult以及WifiInfo等类。这些类中有些必要的参数,在这里做一下介绍。

BSSID

BSSID 是指站点的 MAC 地址。但是实际扫描结果并不是这样的,当我们扫描Ap的时候会出现这样的情况,同一个SSID,但是BSSID  不同,这主要是由于增加出来的虚拟BSSID就是在其对应MAC地址上进行增加

SSID 

这个好理解,就是我们常用的wifi的名字。

Capabilities

网络接入的性能,这里主要是来判断网络的加密方式等。

1.局域网的安全方式有 无 WEP WPA_PSK WPA2_PSK 

2.安全选项有ESS  无

3.安全选项与安全方式是进行组合的,如 [WPA-PSK_CCMP][ESS]表示安全选项为WPA-PSK,加密方式为AES

4.如果只有[ESS]则认为该局域网未加密

Frequency

这个是用来表示每一个频道交互的MHz 数,现在的路由器越来越高级,我们设置好路由器的时候都会有两种频率模式2.4G和5G。

我们获取了这个值一般是一个4位数如5848,那么这就是一个5G通道。

同理返回4个数字2字开头的话,就系2.4G。

这个可以直接用第一个数字来判断,而不要用全4个数字来判断,因为后面的有别的意义。

这里简单介绍一下两者的区别:

1. 2.4G优点是频段室内环境中抗衰减能力强,穿墙能力不错。劣势是许多设备用的都是 2.4GHz,如蓝牙,zigbee无线,所以干扰很多,不能保障足够的稳定性。

2. 5G优点是抗干扰能力强,能提供更大的带宽,吞吐率高,扩展性强。缺点是5GHz穿墙能力较差,信号衰减要大于2.4G,5G的只适合室内小范围覆盖和室外网桥,各种障碍物对其产生的衰减作用比2.4g大得多(不担心邻居家蹭网)。

level

Level 等级,可以理解为信号强度。

说是信号强度有些不准确,RSSI才是接收的信号强度指示,无线发送层的可选部分,用来判定链接质量,以及是否增大广播发送强度。

但是level跟RSSI是有一个转换公式的RSSI = level - NoiceFloor 。也就是说RSSI与level是有关联的,可以根据level的值来确定信号的强度。

02

相关广播

一般来说与WiFi相关的广播有一下四种:

  1. WifiManager.WIFI_STATE_CHANGED_ACTION这个监听wifi的打开与关闭,与wifi的连接无关 。

  2. WifiManager.SCAN_RESULTS_AVAILABLE_ACTION

    这个是用来出来热点扫描的结果,当我们开启了热点扫描,即startScan之后,需要在这个广播中处理扫描结果,即getScanResults

  3. WifiManager.SUPPLICANT_STATE_CHANGED_ACTION是不是正在获得IP地址,发送WIFI连接的过程信息,连接WIFI时触发,触发多次。

  4. WifiManager.NETWORK_STATE_CHANGED_ACTION顾名思义,WIFI状态发生变化时触发。

以上所有内容都会在之后放出的demo中有具体的展示,希望朋友们继续关注。

03

关于源码分享

之前有开发者给我留言问我啥时候继续放送源码和学习资料,以及希望我能加上每个Demo的配图。

源码和学习资料的分享还在继续,本月底还有波视频资料,大部分都是Android的基础教学,非常适合入门的开发者,请大家继续关注。

至于截图问题,这个有些难为我了,几千个demo,我还真没法一一去截图。之后由于时间问题,我会直接打包放送给大家,尽量多增加一些技术文章。

 • end • 

                By   mymdeep

DeepAndroid

一起分享技术的点滴