wifiinfo studio scan network example ejemplo android network-protocols wifimanager

android - studio - Obtenga el protocolo Wi-Fi(802.11a/b/g/n) mediante programación



wifiinfo (2)

No creo que esto sea posible de una manera limpia. Los protocolos (a, b, g, n, etc.) son en realidad abstracciones humanas de la capa MAC y física en las redes. Estos se definen como sus letras reconocibles si cumplen con ciertas especificaciones de hardware, tanto para el dispositivo como para el dispositivo de red.

Después de investigar un poco, parece que los teléfonos con Windows pueden mostrar esta información . Al investigar la manera de determinar el protocolo en Windows, encontré la explicación del escritorio y la implementación de Visual C ++ a través de enumeraciones . Parece que incluso la documentación oficial de Windows se basa en datos proporcionados por el proveedor y valores enumerados, lo que me llevaría a creer que necesitan determinar las especificaciones de hardware más allá de lo que probablemente esté expuesto en la API de Android .

Si desea determinar el protocolo usted mismo, deberá comprender la velocidad del enlace, la frecuencia, la modulación y el ancho de banda .

TL; DR

Probablemente no sea posible a menos que esté trabajando con un teléfono rooteado y pueda acceder a las especificaciones de hardware directamente.

A través de WifiManager, mi aplicación de Android puede obtener muchos detalles sobre Wi-Fi. Sin embargo, no consigo obtener el tipo de protocolo como a / b / g / n. Tengo un requisito de cliente para hacer eso.

¿Alguien sabe como lograr eso? (No tengo la opción de usar adb). Se debe hacer programáticamente. Creo firmemente que el dispositivo y el enrutador ya han negociado el protocolo antes de que puedan conectarse. Así que esa información está ahí con el dispositivo. La pregunta es, ¿cómo lo conseguimos?


Puede deducir parcialmente el protocolo a partir de la velocidad de enlace.

WifiManager.getConnectionInfo().getLinkSpeed()

Por la tabla de velocidad de los protocolos 802.11 de Wikipedia , puede saber si es 802.11b, 802.11n o 802.11ag.
Tablas de velocidad de enlace completo 802.11n 802.11ac

Las velocidades de enlace de los protocolos 802.11a y 802.11g son las mismas, puede distinguirlas por la frecuencia utilizada (5 GHz o 2.4 GHz) en los resultados del escaneo.

Tenga en cuenta que el protocolo puede cambiar durante la conexión, el cliente y el punto de acceso negocian los protocolos y las velocidades, pero están de acuerdo en una lista y no en una velocidad específica.

No creo que haya una manera de distinguir entre 802.11n y 802.11ac en sus velocidades de superposición.