我需要检测wifi打开/关闭的时间。为此,我使用了James Montemagno的Connectivity,但问题是,如果手机可以访问移动网络并打开/关闭wifi,我就无法获得ConnectivityChanged事件。
以下是事件的映射:
CrossConnectivity.Current.ConnectivityChanged += (sender, args) =>
{
WiFiConnected = CrossConnectivity.Current.ConnectionTypes.Contains(ConnectionType.WiFi);
};
那么我可以在Wifi上检测连接变化吗?我想在Xamarin Forms代码中执行此操作,因此我不必为每个平台实现解决方案。
答案 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 ..对于其他平板电脑我不知道..