diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java index 8ef381d140d6f..9806199003d78 100755 --- a/telephony/java/android/telephony/CarrierConfigManager.java +++ b/telephony/java/android/telephony/CarrierConfigManager.java @@ -2684,6 +2684,30 @@ public class CarrierConfigManager { /** Prefix of all Gps.KEY_* constants. */ public static final String KEY_PREFIX = "gps."; + /** + * Location information during (and after) an emergency call is only provided over control + * plane signaling from the network. + * @hide + */ + public static final int SUPL_EMERGENCY_MODE_TYPE_CP_ONLY = 0; + + /** + * Location information during (and after) an emergency call is provided over the data + * plane and serviced by the framework GNSS service, but if it fails, the carrier also + * supports control plane backup signaling. + * @hide + */ + public static final int SUPL_EMERGENCY_MODE_TYPE_CP_FALLBACK = 1; + + /** + * Location information during (and after) an emergency call is provided over the data plane + * and serviced by the framework GNSS service only. There is no backup signalling over the + * control plane if it fails. + * @hide + */ + public static final int SUPL_EMERGENCY_MODE_TYPE_DP_ONLY = 2; + + /** * Determine whether current lpp_mode used for E-911 needs to be kept persistently. * {@code false} - not keeping the lpp_mode means using default configuration of gps.conf @@ -2775,6 +2799,23 @@ public class CarrierConfigManager { */ public static final String KEY_NFW_PROXY_APPS_STRING = KEY_PREFIX + "nfw_proxy_apps"; + /** + * Determines whether or not SUPL ES mode supports a control-plane mechanism to get a user's + * location in the event that data plane SUPL fails or is otherwise unavailable. + *

+ * An integer value determines the support type of this carrier. If this carrier only + * supports data plane SUPL ES, then the value will be + * {@link #SUPL_EMERGENCY_MODE_TYPE_DP_ONLY}. If the carrier supports control plane fallback + * for emergency SUPL, the value will be {@link #SUPL_EMERGENCY_MODE_TYPE_CP_FALLBACK}. + * If the carrier does not support data plane SUPL using the framework, the value will be + * {@link #SUPL_EMERGENCY_MODE_TYPE_CP_ONLY}. + *

+ * The default value for this configuration is {@link #SUPL_EMERGENCY_MODE_TYPE_CP_ONLY}. + * @hide + */ + public static final String KEY_ES_SUPL_CONTROL_PLANE_SUPPORT_INT = KEY_PREFIX + + "es_supl_control_plane_support_int"; + private static PersistableBundle getDefaults() { PersistableBundle defaults = new PersistableBundle(); defaults.putBoolean(KEY_PERSIST_LPP_MODE_BOOL, true); @@ -2789,6 +2830,8 @@ public class CarrierConfigManager { defaults.putString(KEY_GPS_LOCK_STRING, "3"); defaults.putString(KEY_ES_EXTENSION_SEC_STRING, "0"); defaults.putString(KEY_NFW_PROXY_APPS_STRING, ""); + defaults.putInt(KEY_ES_SUPL_CONTROL_PLANE_SUPPORT_INT, + SUPL_EMERGENCY_MODE_TYPE_CP_ONLY); return defaults; } }