【问题标题】:Specific Network Informations特定网络信息
【发布时间】:2017-07-26 10:43:35
【问题描述】:

我正在做一个学校项目,我需要检索我能在附近找到的所有接入点。 当我得到列表 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、Open ...”(引用项目分配)。我从哪里获得这些信息?我不明白 r.capabilities 是什么意思。

我发现的网络的 Capabilities 字段如下:

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

【问题讨论】:

  • 学校项目真的想要距离还是只是最好的候选人?

标签: android network-programming


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-10
    • 1970-01-01
    • 2014-03-23
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    • 2012-05-18
    • 1970-01-01
    相关资源
    最近更新 更多