检测 Wifi 的变化

Detect changes in Wifi

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

事件映射如下:

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

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

我不知道是否有 xamarin 表单解决方案,但您可以使用特定于平台的解决方案。在 android 中使用 BroadcastReceiver.. 对于其他平台我不知道..

这里有你要找的东西

     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
                    }
                }
            };