c0r*_*exx 6 configuration networking android wifi wifimanager
我需要检查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));
Run Code Online (Sandbox Code Playgroud)
这就是我获得配置网络的方式:
List<WifiConfiguration> list = wifi.getConfiguredNetworks();
Run Code Online (Sandbox Code Playgroud)
有没有办法检查list.get(i)是否对应于results.get(j)配置,无论是i还是j?
您可以检查两个网络的 BSSID 是否匹配。ScanResult 和 WifiConfiguration 都提供 BSSID,该 BSSID 对于网络来说是唯一的。
| 归档时间: |
|
| 查看次数: |
1737 次 |
| 最近记录: |