检测 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
}
}
};
我需要检测 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
}
}
};