【问题标题】:Detect changes in Wifi检测 Wifi 的变化
【发布时间】:2016-10-08 07:38:30
【问题描述】:

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

这里是事件的映射:

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

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

【问题讨论】:

  • 你找到解决方案了吗?
  • 我尝试了“ConnectivityTypeChanged”而不是“ConnectivityChanged”。但我面临的问题是“ConnectivityTypeChanged”事件在更改 Wifi/Cellular 时被多次触发。我只需要触发一个通知,例如 "ConnectivityChanged" .CrossConnectivity.Current.ConnectivityTypeChanged += (sender, args) => { WiFiConnected = CrossConnectivity.Current.ConnectionTypes.Contains(ConnectionType.WiFi); };

标签: c# wifi xamarin.forms


【解决方案1】:

这里有你要找的东西

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

【讨论】:

  • "ConnectivityChanged" 只检查互联网连接是否可用,因此在上述情况下,当 Wifi 断开连接时,移动互联网仍然可用,并且不会调用此方法。这种情况如何处理?
【解决方案2】:

我不知道是否有 xamarin forms 解决方案,但您可以针对特定平台进行操作。在带有 BroadcastReceiver 的 android.. 对于其他平台我不知道..

【讨论】:

  • 我会试试的。谢谢。
猜你喜欢
  • 2011-03-23
  • 1970-01-01
  • 1970-01-01
  • 2015-02-14
  • 2021-06-17
  • 2017-02-25
  • 1970-01-01
  • 1970-01-01
  • 2016-05-02
相关资源
最近更新 更多