我正在使用适用于Mac OS X的CoreWLan框架从接入点读取RSSI值。
我可以用两种不同的方式做到:
使用界面(连接到我的网络)
currentInterface = [CWInterface interface];
[currentInterface rssivalue];
使用网络:
currentInterface = [CWInterface interface];
networks = [[currentInterface scanForNetworksWithName:@"mySSID" error:nil] allObjects];
[networks[0] rssiValue];
然而,似乎这两种方法(由于接口连接到网络应该给出相同的值)会产生不同的结果。后一种方法似乎始终给出比接口方法强3-5 dB的值。
关于为什么会出现这种差异的任何想法?哪一个更“合法”?
答案 0 :(得分:2)
当前界面的rssiValue属性(第一种情况)为您提供聚合 rssi。
虽然扫描结果的rssiValue(第二种情况)在扫描时给出了rssi值 。
这就是为什么一般来说第一个不到第二个。但有时您会因为一些干扰而在扫描结果上看到非常低的rssi值。
还有另一件事:可能有少量具有相同ssid的接入点,在这种情况下,您无法确定网络[0]将是当前连接的接入点的结果。你应该先检查bssid值。