以编程方式获取Wi-Fi协议(802.11a/b/g/n)

Jai*_*ken 18 android network-protocols wifimanager

通过WifiManager,我的Android应用程序可以获得有关Wi-Fi的大量细节.但是我没有像a/b/g/n那样获得协议类型.我有客户要求这样做.

有谁知道如何实现这一目标?(我没有选择使用adb).它将以编程方式完成.我坚信设备和路由器在连接之前已经协商了协议.所以信息与设备有关.问题是,我们如何得到它?

Ofi*_*zon 10

您可以从链接速度中部分推断出协议

WifiManager.getConnectionInfo().getLinkSpeed()

通过Wikipedia 802.11协议速度表,您可以判断它是802.11b,802.11n还是802.11ag.
802.11n802.11ac全链路速度表

协议802.11a和802.11g的链路速度是相同的,您可以通过扫描结果中使用的频率(5GHz或2.4GHz)来区分它们.

请注意,协议可以在连接期间发生变化,客户端和接入点会协商协议和速度但是它们在列表上达成一致,而不是在一个特定的速度上.

我不认为有一种方法可以区分802.11n和802.11ac的重叠速度.