7

我需要检查 getScanResults() 方法返回的每个网络是否已经在设备中配置,也就是说,我需要检查它是否存在于 getConfiguredNetworks() 返回的列表中。问题是:我怎么能这样做,因为它们唯一的共同参数是 SSID?我知道这不是一个好方法,因为可能会有更多具有相同 SSID 的网络。如参考中所述,networkId 是请求者用来标识此网络配置条目的 ID 号,但我找不到与 ScanResult 对象类似的东西。

所以如果这是我的接收器:

WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
registerReceiver(new BroadcastReceiver()
       {
           @Override
           public void onReceive(Context c, Intent intent) 
           {
              results = wifi.getScanResults();
              size = results.size();
           }
       }, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)); 

这就是我获取配置网络的方式:

List<WifiConfiguration> list = wifi.getConfiguredNetworks();

有没有办法检查 list.get(i) 是否对应于 results.get(j) 配置,无论是 i 还是 j?

4

1 回答 1

4

您可以检查两个网络的 BSSID 是否匹配。ScanResult 和 WifiConfiguration 都提供一个网络唯一的 BSSID。

于 2013-11-05T04:42:19.627 回答