2015-05-01 27 views
2

我正在使用Android Studio尝试使用getBSSID方法获取网关的MAC。但是,它从来没有正确显示它。我的网关是xx:xx:xx:xx:xx:f0,但此方法返回xx:xx:xx:xx:xx:f2。我尝试了另一个路由器(xx:xx:xx:xx:xx:xb),并且我也弄错了它(xx:xx:xx:xx:xx:xc)。Android的getBSSID()方法错误?

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

这是为什么?难道我做错了什么?

回答

1

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

大多数接入点为不同的无线接口使用多个mac地址。例如,5 GHZ或2.4 GHZ的MAC地址彼此不同,并且它们与用于通告该网络的MAC地址不同。 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地址。

+0

我明白。感谢您的解释。所以,底线是,我无法得到我想要的getbssid方法的MAC地址,对吧? – Notheros

+0

我忘了提及: 我有一个网状网络,路由器有类似的mac地址。但是,当我获得f2而不是f0时,f2不在线。但我认为你是对的,路由器给我发送了另一个mac,而不是正确的。 – Notheros