Detectar wifi habilitado (independientemente de si está conectado)

Para una aplicación de rastreo GPS, la grabación de señales de location con WIFI activada da como resultado datos o datos con brechas realmente imprecisos.

He utilizado las consultas de scope para detectar si Wi-Fi está disponible antes de iniciar el seguimiento. El problema es que si cuando se hace esa consulta el Wi-Fi está habilitado pero no está conectado a una networking, muestra que Internet no se puede acceder a través de Wi-Fi, pero eso no es una indicación de si la configuration está deshabilitada en la aplicación de configuration. Esto significa que si el usuario comienza a ejecutarse y se realiza una connection a mitad de carrera, obtendrán una señal de location desde el wifi en lugar del GPS o la networking celular. En consecuencia, la precisión en esos puntos de datos puede ser> 10 metros, así que quiero omitir ese punto. El problema es que, en wifi, tendrán un gran período en blanco en el que no se registró su señal.

Entonces, ¿cómo puedo comprobar si wifi está habilitado pero desconectado?

He leído todas las otras discusiones de accesibilidad que pude encontrar, pero esta parece ser la única brecha con muchas respuestas que sugieren incorrectamente que la accesibilidad soluciona esto de manera inmediata.

… y no voy a requerir wifi, solo alertales que está habilitado, por lo que en algún momento de su entrenamiento, sus datos de location podrían perderse (debido a la inexactitud).

Ha pasado bastante time desde que pediste, pero me encontré con esta.

No parece que haya forma de hacerlo si quieres obedecer las reglas de Apple. sysctl e ioctl no funcionarán porque no hay banderas que le mostrarán si WiFi está habilitado. Por ejemplo, las banderas para "UP" y "RUNNING" serán las mismas si Wi-Fi está desactivado o Wi-Fi está habilitado, pero no está conectado.

El propio framework WiFi de Apple utiliza mach para comunicarse directamente con el kernel y dudo que Apple permita ese código en la AppStore.

Esto ES posible, pero la solución es obscura y fea. La respuesta corta es que si ve DOS interfaces con el nombre "awdl0", entonces Wi-Fi está habilitado, solo uno y está deshabilitado.

¿Ves una mejor forma de detectar Wi-Fi habilitado / deshabilitado en iOS? Para una descripción más completa y un código de ejemplo.