Since you have a Tag with Xamarin, just use the API from Essentials. For the connectivity-checker see the docs.
Here is a pretty perfekt blogpost from "James Montemagno"
A sneak preview of the Post:
var current = Connectivity.NetworkAccess;
switch(current)
{
  case NetworkAccess.Internet:
    // Connected to internet
    break;
  case NetworkAccess.Local:
    // Only local network access
    break;
  case NetworkAccess.ConstrainedInternet:
    // Connected, but limited internet access such as behind a network login page
    break;
  case NetworkAccess.None:
    // No internet available
    break;
  case NetworkAccess.Unknown:
    // Internet access is unknown
    break;
}
Edit due to the comment from @Samuel James:
Maybe this helps?
Check what type of activ connection (according docs from Mircosoft):
 var profiles = Connectivity.ConnectionProfiles;
 if (profiles.Contains(ConnectionProfile.Cellular))
 {
   // Active mobile/cellular data connection.
 }
    
public enum ConnectionProfile
{
    /// <summary>Other unknown type of connection.</summary>
    Unknown,
    /// <summary>The bluetooth data connection.</summary>
    Bluetooth,
    /// <summary>The mobile/cellular data connection.</summary>
    Cellular,
    /// <summary>The ethernet data connection.</summary>
    Ethernet,
    /// <summary>The WiFi data connection.</summary>
    WiFi
}