예제 #1
0
 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);
        }