通过WifiManager,我的Android应用可以获取有关Wi-Fi的许多详细信息。但是我无法获得像a/b/g/n这样的协议(protocol)类型。我有这样做的客户要求。
有谁知道如何做到这一点? (我没有使用adb的选项)。这将以编程方式完成。我坚信设备和路由器在连接之前已经协商了协议(protocol)。这样信息就存在于设备中。问题是,我们如何得到它?
最佳答案
您可以从链接速度中部分推断出协议(protocol)WifiManager.getConnectionInfo().getLinkSpeed()
通过Wikipedia 802.11 protocols speed表,您可以确定它是802.11b,802.11n还是802.11ag。
802.11n和802.11ac完整链接速度表
协议(protocol)802.11a和802.11g的链接速度相同,您可以通过扫描结果中使用的频率(5GHz或2.4GHz)来区分它们。
请注意,协议(protocol)可以在连接期间更改,客户端和访问点可以协商协议(protocol)和速度,但是它们在列表中达成一致,而不是一种特定的速度。
我认为没有办法在重叠速度上区分802.11n和802.11ac。