如何找到指定接入点的频段

时间:2019-05-20 19:35:12

标签: java android

我正在使用以下代码查找我附近的所有访问点。

我们通过以下方式启动扫描仪

registerReceiver(wifiReceiver, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
wifiManager.startScan();

并使用BroadcastReceiver

获得结果
BroadcastReceiver wifiReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        List<ScanResult> scanResults = wifiManager.getScanResults();
        unregisterReceiver(this);

        for (ScanResult result : scanResults) {
            //some code...
        }
    }
};

现在,通过使用ScanResults,我们可以获得ssidbssidcapabilities等功能,但是我找不到找到ssid频带的方法。有可能吗?

1 个答案:

答案 0 :(得分:2)

ScanResultfrequency字段中,您可以确定AP的频带。

具体来说,如果frequency> 5000,频带将为5GHz,如果3000> frequency> 2000(大约2400),则频带将为2.4GHz。

根据802.11 standard,它指定5GHz频带的起始频率为5000MHz,而2.4GHz频带的起始频率为2047MHz,从ScanResult#frequency获得的频率将有所不同,因为它们是不同的信道内。


将起始(基准)频率转换为中心(结果)频率的具体公式为

freqCenter = freqStart + 5 * channelNumber

这样,您可以得出AP的通道号。