Comtesting si WIFI está disponible en Xamarin iOS

En Detect si la networking está disponible , se introduce la class Reachability . InternetConnectionStatus() no parece hacer lo que quiero. Quiero comprobar si hay WiFi disponible, independientemente de si la connection a Internet es posible. No sé si fue el server DNS faltante o similar, es el motivo. Actualmente, parece que la connection a Internet siempre se testing. ¿ LocalWifiConnectionStatus() el mejor?

¿Cómo puedo verificar si el usuario está conectado a una connection WLAN?

  1. Abre el gestor de packages de Nuger
  2. Simplemente busque el complemento xam.plugin.connectivity e instálelo.

Ahora agregue este código para verificar Internet a su class y use la opción de nombres usando Plugin.Connectivity;

 private bool CheckConnectivity() { var isConnected = CrossConnectivity.Current.IsConnected; return isConnected; } 

No sé si ha habido actualizaciones de la API desde que escribí este código, pero podría intentar leer el SSID:

  /// <summary> /// Gets the current SSID. /// </summary> /// <value>The current SSID.</value> public string CurrentSSID { get { NSDictionary dict; var status = CaptiveNetwork.TryCopyCurrentNetworkInfo ("en0", out dict); if (status == StatusCode.NoKey) { return string.Empty; } var bssid = dict [CaptiveNetwork.NetworkInfoKeyBSSID]; var ssid = dict [CaptiveNetwork.NetworkInfoKeySSID]; var ssiddata = dict [CaptiveNetwork.NetworkInfoKeySSIDData]; return ssid.ToString(); } } 

También podría intentar usar LocalWifiConnectionStatus si se adapta mejor a sus necesidades.

https://github.com/XForms/Xamarin-Forms-Labs/blob/master/src/Xamarin.Forms.Labs/Xamarin.Forms.Labs.iOS/Services/Reachability.cs

  /// <summary> /// The local WiFi connection status. /// </summary> /// <returns> /// The <see cref="NetworkStatus"/>. /// </returns> public static NetworkStatus LocalWifiConnectionStatus() { NetworkReachabilityFlags flags; return (!IsAdHocWiFiNetworkAvailable(out flags) || (flags & NetworkReachabilityFlags.IsDirect) == 0) ? NetworkStatus.NotReachable : NetworkStatus.ReachableViaWiFiNetwork; } 

Su pregunta puede ser respondida si usa Objective-C en

¿Cómo verificar el Wi-Fi local (no solo la connection celular) usando el iPhone SDK?

Pero el código que usa Objective-C puede ser de puerto para xamarin c # fácilmente. Por favor marque este enlace

Sé que esto es antiguo, pero estaba buscando lo mismo y combiné las respuestas … ¿Alguien tiene una mejor sugerencia o una razón para no hacerlo así?

 public NetworkState GetNetworkState() { object ssid = null; NSDictionary dict = null; var status = CaptiveNetwork.TryCopyCurrentNetworkInfo("en0", out dict); if (status == StatusCode.OK) ssid = dict[CaptiveNetwork.NetworkInfoKeySSID]; using (SystemConfiguration.NetworkReachability r = new NetworkReachability("www.appleiphonecell.com")) { NetworkReachabilityFlags flags; if (r.TryGetFlags(out flags)) { if ((flags & NetworkReachabilityFlags.Reachable) != 0) { if (ssid != null && !string.IsNullOrEmpty(ssid.ToString())) return NetworkState.Wifi; else return NetworkState.Carrier;//we are not connected to wifi, but we can reach the site... } } } return NetworkState.None; }