public override void OnReceive(Context context, Intent intent) { ConnectivityManager connectivityManager = (ConnectivityManager)context.GetSystemService(Context.ConnectivityService); NetworkInfo activeNetInfo = connectivityManager.ActiveNetworkInfo; NetworkInfo wifiNetInfo = connectivityManager.GetNetworkInfo(ConnectivityType.Wifi); NetworkInfo mobileNetInfo = connectivityManager.GetNetworkInfo(ConnectivityType.Mobile); var networkState = new NetworkState() { IsNetworkAvailable = (activeNetInfo != null) && activeNetInfo.IsAvailable, IsWifiAvailable = (wifiNetInfo != null) && wifiNetInfo.IsAvailable, IsCellularAvailable = (mobileNetInfo != null) && mobileNetInfo.IsAvailable }; Console.WriteLine("ConnectionChangeReceiver - active: {0} - wifi: {1} - mobile: {2}", networkState.IsNetworkAvailable, networkState.IsWifiAvailable, networkState.IsCellularAvailable); _deviceSpecifications.ReportNetworkStateChange(networkState); _messageHub.PublishAsync<ConnectionStatusChangedMessage>(new ConnectionStatusChangedMessage(this) { NetworkState = networkState }); }
public void ReportNetworkStateChange(NetworkState networkState) { if (OnNetworkStateChanged != null) OnNetworkStateChanged(networkState); }