我正在尝试连接到特定的BSSID,事实证明这是有问题的。我在ScanResult
中获得了要连接的BSSID。然后,我将其传递给将使用BSSID设置WifiConfiguration
并连接到它的函数。但是,该设备实际上并未连接到该网络。
为了查看发生了什么,我通过循环遍历WifiManager
的getConfiguredNetworks()
函数来打印出所有已配置的网络,我发现几乎所有已配置的网络都将null
作为BSSID,即使是我手动配置。还有一个网络以any
作为其BSSID条目。
确切地说,WifiConfiguration
中的BSSID字段是什么意思?该文档指出:
公共字符串BSSID
设置后,仅当与具有指定BSSID的AP关联时,才应使用此网络配置条目。该值是以太网MAC地址格式的字符串,例如XX:XX:XX:XX:XX:XX:XX,其中每个X是十六进制数字。any
和null
当然不是这种格式。这是我用来打印的代码:
for (WifiConfiguration config : wifiManager.getConfiguredNetworks()) {
Log.d("TEST", config.BSSID + " " + config.status + " " + config.priority + " " + config.SSID);
}
编辑:当我进行WifiConfiguration时,我在打印语句中添加了
toString()
。调用configuration.BSSID
返回null
,而toString
给我一个BSSID。这里发生了什么? 最佳答案
好吧,似乎由于某种原因,如果您设置了BSSID而没有设置SSID,则Android会感到奇怪。设置SSID也会导致BSSID正确显示。