检测 Wifi 中的变化

Jen*_*olt 3 c# wifi xamarin.forms

我需要检测 wifi 何时打开/关闭。为此,我正在使用 James Montemagno 的 Connectivity,但问题是如果手机可以访问移动网络并且我打开/关闭 wifi,我将不会收到 ConnectivityChanged 事件。

这是事件的映射:

    CrossConnectivity.Current.ConnectivityChanged += (sender, args) =>
    {
        WiFiConnected = CrossConnectivity.Current.ConnectionTypes.Contains(ConnectionType.WiFi);
    };
Run Code Online (Sandbox Code Playgroud)

那么我可以检测到 Wifi 上的连接已更改吗?我想在 Xamarin Forms 代码中执行此操作,因此我不必为每个平台实施解决方案。

小智 5

在这里你要找什么

     CrossConnectivity.Current.ConnectivityChanged += (sender, args) =>
            {

                if (args.IsConnected.ToString().Equals("False"))
                {
                    if (CrossConnectivity.Current.ConnectionTypes.Contains(ConnectionType.WiFi))
                    {
                        // WE LOST AN CONNECTION BUT WIFI IS STILL ON 
                    }
                }
                else
                {
                    if (CrossConnectivity.Current.ConnectionTypes.Contains(ConnectionType.WiFi))
                    {
                        // WIFI WAS TURN ON AND WE HAVE A CONNECTION 
                    }
                    else
                    {
                        // WE HAVE A CONNECTION BUT NOT WIFI
                    }
                }
            };
Run Code Online (Sandbox Code Playgroud)