通过WifiManager,我的Android应用可以获取很多关于Wi-Fi的细节。但我无法获取协议类型,比如a/b/g/n。我有客户需求要做到这一点。
有人知道如何实现吗?(我没有使用adb的选项)。它需要以编程方式完成。我坚信设备和路由器在连接前已经协商了协议。因此该信息与设备一起存在。问题是,我们如何获取它?
通过WifiManager,我的Android应用可以获取很多关于Wi-Fi的细节。但我无法获取协议类型,比如a/b/g/n。我有客户需求要做到这一点。
有人知道如何实现吗?(我没有使用adb的选项)。它需要以编程方式完成。我坚信设备和路由器在连接前已经协商了协议。因此该信息与设备一起存在。问题是,我们如何获取它?
WifiManager.getConnectionInfo().getLinkSpeed()
通过 Wikipedia 802.11 protocols speed 表格,您可以判断它是802.11b、802.11n还是802.11ag。
802.11n 和 802.11ac 的完整链接速度表
协议802.11a和802.11g的链接速度相同,您可以通过扫描结果中使用的频率(5GHz或2.4GHz)来区分它们。
请注意,在连接过程中协议可能会发生变化,客户端和接入点协商协议和速度,但他们会达成一个列表而不是一个特定的速度。
我认为在它们重叠的速度中无法区分802.11n和802.11ac。