通过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.11n802.11ac完整链接速度表

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

请注意,协议(protocol)可以在连接期间更改,客户端和访问点可以协商协议(protocol)和速度,但是它们在列表中达成一致,而不是一种特定的速度。

我认为没有办法在重叠速度上区分802.11n和802.11ac。

10-07 19:46