检测Wifi的变化

时间:2016-06-08 07:16:42

标签: c# wifi xamarin.forms

我需要检测wifi打开/关闭的时间。为此,我使用了James Montemagno的Connectivity,但问题是,如果手机可以访问移动网络并打开/关闭wifi,我就无法获得ConnectivityChanged事件。

以下是事件的映射:

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

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

2 个答案:

答案 0 :(得分:4)

这是你想要的东西

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

答案 1 :(得分:2)

我不知道是否有xamarin表格解决方案,但你可以做特定的平板形式。在Android中使用BroadcastReceiver ..对于其他平板电脑我不知道..