public override void OnCapabilitiesChanged(Network network, NetworkCapabilities networkCapabilities) { if (networkCapabilities.HasTransport(TransportType.Wifi) || networkCapabilities.HasTransport(TransportType.WifiAware)) { service.OnConnectivityGot(ConnectivityType.Wifi); } else if (networkCapabilities.HasTransport(TransportType.Cellular)) { service.OnConnectivityGot(ConnectivityType.Cellur); } else { service.OnConnectivityGot(ConnectivityType.None); } }
public override NetworkCostType GetNetworkCostType() { try { ConnectivityManager connMgr = (ConnectivityManager)NativeApplication.Current.ApplicationContext.GetSystemService(Context.ConnectivityService); if (connMgr != null) { if (Build.VERSION.SdkInt >= BuildVersionCodes.M) { Network network = connMgr.ActiveNetwork; if (network != null) { NetworkCapabilities capabilities = connMgr.GetNetworkCapabilities(network); if (capabilities.HasTransport(TransportType.Wifi)) { return(NetworkCostType.Unlimited); } else { return(NetworkCostType.Limited); } } } else { NetworkInfo activeInfo = connMgr.ActiveNetworkInfo; if (activeInfo != null && activeInfo.IsConnected) { if (activeInfo.Type == ConnectivityType.Wifi) { return(NetworkCostType.Unlimited); } else { return(NetworkCostType.Limited); } } } } } catch (Exception ex) { TelemetryExtension.Current?.TrackException(ex); } return(NetworkCostType.Disconnected); }