public string GetDataNetworkPath()
        {
            AndroidJavaObject telManager = GetTelephonyManager();

            if (telManager == null)
            {
                return("");
            }
            const string readPhoneStatePermissionString = "android.permission.READ_PHONE_STATE";

            try
            {
                if (Permission.HasUserAuthorizedPermission(readPhoneStatePermissionString))
                {
                    int             nType    = PlatformIntegrationUtil.Call <int>(telManager, "getDataNetworkType");
                    NetworkDataType datatype = (NetworkDataType)nType;
                    return(datatype.ToString());
                }
                else
                {
                    return("");
                }
            }
            catch (Exception e)
            {
                Logger.LogWarning("Exception retrieving properties: " + e.GetBaseException() + ", " + e.Message);
                return("");
            }
        }
    // Placeholder, if available, just use the Unity version
#if UNITY_ANDROID
    public Dictionary<string, string> GetDeviceInfo()
    {
      CarrierInfoClass carrierInfo = new CarrierInfoClass();
      Dictionary<string, string> map = new Dictionary<string, string>();
      int sdk_int = carrierInfo.getAndroidSDKVers();
      map["Build.VERSION.SDK_INT"] = sdk_int.ToString();
      if (UnityEngine.XR.XRSettings.loadedDeviceName.Contains("oculus"))
      {
          return map;
      }
      AndroidJavaObject telephonyManager = carrierInfo.GetTelephonyManager();
      if (telephonyManager == null)
      {
          Logger.Log("No TelephonyManager!");
          return map;
      }
      const string readPhoneStatePermissionString = "android.permission.READ_PHONE_STATE";
      try
      {
        if (Permission.HasUserAuthorizedPermission(readPhoneStatePermissionString))
        {
          string ver = PlatformIntegrationUtil.Call<string>(telephonyManager, "getDeviceSoftwareVersion");
          if (ver != null)
          {
            map["DeviceSoftwareVersion"] = ver.ToString();
          }
        }
      }
      catch (Exception e)
      {
        Logger.LogWarning("Exception retrieving properties: " + e.GetBaseException() + ", " + e.Message);
      }

      try
      {
        if (Permission.HasUserAuthorizedPermission(readPhoneStatePermissionString))
        {
          int nType = PlatformIntegrationUtil.Call<int>(telephonyManager, "getDataNetworkType");
          NetworkDataType datatype = (NetworkDataType)nType;
          map["DataNetworkType"] = datatype.ToString();
        }
      }
      catch (Exception e)
      {
        Logger.LogWarning("Exception retrieving properties: " + e.GetBaseException() + ", " + e.Message);
      }

      AndroidJavaClass versionCodesClass = new AndroidJavaClass("android.os.Build$VERSION_CODES");
      int versionCode = PlatformIntegrationUtil.GetStatic<int>(versionCodesClass, "Q");
      if (sdk_int > versionCode)
      {
        string mc = PlatformIntegrationUtil.Call<string>(telephonyManager, "getManufacturerCode");
        if (mc != null)
        {
          map["ManufacturerCode"] = mc;
        }
      }

      string niso = PlatformIntegrationUtil.Call<string>(telephonyManager, "getNetworkCountryIso");
      if (niso != null)
      {
        map["NetworkCountryIso"] = niso;
      }

      string siso = PlatformIntegrationUtil.Call<string>(telephonyManager, "getSimCountryIso");
      if (siso != null)
      {
        map["SimCountryCodeIso"] = siso;
      }

      int phoneType = PlatformIntegrationUtil.Call<int>(telephonyManager, "getPhoneType");
      map["PhoneType"] = phoneType.ToString();

      // Default one.
      string simOperatorName = PlatformIntegrationUtil.Call<string>(telephonyManager, "getSimOperatorName");
      if (simOperatorName != null)
      {
        map["SimOperatorName"] = simOperatorName;
      }

      // Default one.
      string networkOperator = PlatformIntegrationUtil.Call<string>(telephonyManager, "getNetworkOperatorName");
      if (networkOperator != null)
      {
        map["NetworkOperatorName"] = networkOperator;
      }

      return map;
    }