特定网络信息



我正在做一个学校项目,我需要检索我附近能找到的所有接入点。 当我获得列表mScanResultList时,我可以访问我需要的字段。 我正在测试的代码是:

for(ScanResult r : mResultList) {
Log.i(TEST, "BSSID: " + r.BSSID);
Log.i(TEST, "SSID: " + r.SSID);
Log.i(TEST, "Frequency: " + r.frequency);
Log.i(TEST, "Level: " + r.level);
Log.i(TEST, "Capabilities: " + r.capabilities);
}

我的问题是: r.level 是一个负值。我需要分贝强度将其转换为近似距离。我应该只做-(r.level(吗?

此外,我需要知道"安全类型:WEP,WPA,打开..."(引用项目分配(。我从哪里获得这些信息?我不明白什么是.capabilities。

我找到的网络的功能字段为:

Capabilities: [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS]

"功能"字段告诉您接入点的功能(包括加密(。

我不知道你用什么API来获取r.level,但它可能是负的或正的,这取决于正在使用的无线驱动程序。它通常只是芯片将RSSI等同于(https://en.wikipedia.org/wiki/Received_signal_strength_indication(。您可能最好只取 r.level 的绝对值。还要记住,r.level越接近零(无论是负数还是正数(,接收到的信号就越强。如果这是有道理的。至于将r.level等同于距离,你将不得不做出一些假设,而且永远不会准确。

相关内容

最新更新