Обходной путь должен реализовать собственный обработчик изменений сети на стороне Winphone или UWP и прекратить обработку изменений сети на стороне PCL только для Winphone и UWP.Вы можете сделать это, проверив платформу перед обработкой.
Создайте новый класс Network.cs со следующим кодом (он определяет, есть ли какие-либо изменения в сетевом соединении)
public class InternetConnectionChangedEventArgs : EventArgs
{
public InternetConnectionChangedEventArgs(bool isConnected)
{
this.isConnected = isConnected;
}
public bool IsConnected
{
get { return this.isConnected; }
}
private bool isConnected;
}
public static class Network
{
public static event EventHandler<InternetConnectionChangedEventArgs>
InternetConnectionChanged;
static Network()
{
NetworkInformation.NetworkStatusChanged += (s) =>
{
if (InternetConnectionChanged != null)
{
var arg = new InternetConnectionChangedEventArgs(IsConnected);
InternetConnectionChanged(null, arg);
}
};
}
public static bool IsConnected
{
get
{
var profile = NetworkInformation.GetInternetConnectionProfile();
var isConnected = (profile != null
&& profile.GetNetworkConnectivityLevel() ==
NetworkConnectivityLevel.InternetAccess);
return isConnected;
}
}
}
Затемв app.xaml.cs в UWP или WinPhone зарегистрируйте обработчик изменений сети в событии OnLaunched , как показано ниже
Network.InternetConnectionChanged += this.Network_InternetConnectionChanged;
, а вот обработчик события
private void Network_InternetConnectionChanged(object sender,InternetConnectionChangedEventArgs e)
{
if(e.IsConnected){
///code to handle when the internet connectivity is there
}
else{
//code to handle when the internet connectivity is lost
}
}