Android 的 getBSSID() 方法错误?

Android's getBSSID() method bug?

我正在使用 Android Studio 尝试使用 getBSSID 方法获取网关的 MAC。但是,它永远不会正确显示。我的网关是xx:xx:xx:xx:xx:f0,但是这个方法returnsxx:xx:xx:xx:xx:f2。我尝试使用另一个路由器 (xx:xx:xx:xx:xx:xb),但我也弄错了 (xx:xx:xx:xx:xx:xc)。

WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
return wifiInfo.getBSSID();

这是为什么?我做错了什么吗?

这实际上不是编程相关的问题。

大多数接入点为不同的无线接口使用多个 mac 地址。例如,5 GHZ 或 2.4 GHZ 的 mac 地址彼此不同,并且它们与用于宣布该网络的 mac 地址也不同。

对于您的示例,xx:xx:xx:xx:xx:f0 可能用于 2.4 GHZ,xx:xx:xx:xx:xx:f1 可能用于 5GHZ 网络,xx:xx:xx:xx:xx:f2 用于宣布该网络。也许有一个 xx:xx:xx:xx:xx:f3 用于连接网状链接。

所以您得到的 mac 地址是正确的。只是您的接入点有许多 mac 个用于不同目的的地址。