2016-06-08 87 views
2

我需要检测WiFi开启/关闭的时间。为此,我使用James Montemagno的连接功能,但问题是如果手机可以访问移动网络并打开/关闭WiFi,则不会收到ConnectivityChanged事件。检测Wifi中的更改

这里是事件的映射:

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

所以我可以检测连接改变WIFI的?我想在Xamarin Forms代码中这样做,所以我不必为每个平台实施解决方案。

回答

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

我不知道是否有一个xamarin形式的解决方案,但你可以做它特定于平板。在Android中使用广播接收器。对于其他plateforms我不知道..

+0

我想试试。谢谢。 –