public override void OnReceive(Context context, Intent intent) { Log.To.Sync.D(Tag + ".OnReceive", "Received intent: {0}", intent.ToString()); if (_ignoreNotifications) { Log.To.Sync.D(Tag + ".OnReceive", "Ignoring received intent: {0}", intent.ToString()); _ignoreNotifications = false; return; } Log.To.Sync.D(Tag + ".OnReceive", "Received intent: {0}", intent.ToString()); var manager = (ConnectivityManager)context.GetSystemService(Context.ConnectivityService); var networkInfo = manager.ActiveNetworkInfo; var status = networkInfo == null || !networkInfo.IsConnected ? NetworkReachabilityStatus.Unreachable : NetworkReachabilityStatus.Reachable; if (!status.Equals(_lastStatus)) { _callback(status); } lock (lockObject) { _lastStatus = status; } }
public override void OnReceive(Context context, Intent intent) { Log.D(Tag + ".OnReceive", "Received intent: {0}", intent.ToString()); if (_ignoreNotifications) { Log.D(Tag + ".OnReceive", "Ignoring received intent: {0}", intent.ToString()); _ignoreNotifications = false; return; } Log.D(Tag + ".OnReceive", "Received intent: {0}", intent.ToString()); var status = intent.GetBooleanExtra(ConnectivityManager.ExtraNoConnectivity, false) ? NetworkReachabilityStatus.Unreachable : NetworkReachabilityStatus.Reachable; if (!status.Equals(_lastStatus)) { _callback(status); } lock (lockObject) { _lastStatus = status; } }
void InvokeNetworkChangeEvent(NetworkReachabilityStatus status) { var evt = _statusChanged; if (evt == null) { return; } var eventArgs = new NetworkReachabilityChangeEventArgs(status); evt(this, eventArgs); }
public void TestReachability() { try { var status = NetworkReachabilityStatus.Unknown; var e = new NetworkReachabilityChangeEventArgs(status); NetworkReachabilityStatus s = NetworkReachabilityStatus.Unknown; var _reachability = new Reachability(); _reachability.StatusChanged += (sender, args) => s = args.Status; _reachability.Start(); e.Status.Should().Be(s); var method = ReachabilityType.GetMethod("InvokeNetworkChangeEvent", BindingFlags.NonPublic | BindingFlags.Instance); var res = method.Invoke(_reachability, new object[1] { s }); NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces(); method = ReachabilityType.GetMethod("IsInterfaceValid", BindingFlags.NonPublic | BindingFlags.Static); foreach (var n in nics) { res = method.Invoke(null, new object[1] { n }); } var asender = new object(); method = ReachabilityType.GetMethod("OnNetworkChange", BindingFlags.NonPublic | BindingFlags.Instance); res = method.Invoke(_reachability, new object[2] { asender, e }); var ReplicatorType = typeof(Replicator); var targetEndpoint = new URLEndpoint(new Uri("ws://192.168.0.11:4984/app")); var config = new ReplicatorConfiguration(Db, targetEndpoint); using (Replicator replicator = new Replicator(config)) { method = ReplicatorType.GetMethod("ReachabilityChanged", BindingFlags.NonPublic | BindingFlags.Instance); res = method.Invoke(replicator, new object[2] { asender, e }); } } catch { } }
public override void OnReceive(Context context, Intent intent) { Log.D(Tag + ".OnReceive", "Received intent: {0}", intent.ToString()); if (_ignoreNotifications) { Log.D(Tag + ".OnReceive", "Ignoring received intent: {0}", intent.ToString()); _ignoreNotifications = false; return; } Log.D(Tag + ".OnReceive", "Received intent: {0}", intent.ToString()); var manager = (ConnectivityManager)context.GetSystemService(Context.ConnectivityService); var networkInfo = manager.ActiveNetworkInfo; var status = networkInfo == null || !networkInfo.IsConnected ? NetworkReachabilityStatus.Unreachable : NetworkReachabilityStatus.Reachable; if (!status.Equals(_lastStatus)) { _callback(status); } lock(lockObject) { _lastStatus = status; } }
/// <summary> /// Constructor /// </summary> /// <param name="status">The current network reachability status</param> public NetworkReachabilityChangeEventArgs(NetworkReachabilityStatus status) { Status = status; }
public NetworkReachabilityChangeEventArgs (NetworkReachabilityStatus status) { Status = status; }
internal void InvokeNetworkChangeEvent(NetworkReachabilityStatus status) { var eventArgs = new NetworkReachabilityChangeEventArgs(status); StatusChanged?.Invoke(this, eventArgs); }