Merge "Query isEmergencySmsMode API when checking if emergency for GPS"
am: dedc27142d
Change-Id: Ieccb97fb300455e9338c022c46466bed355be79a
This commit is contained in:
@@ -241,6 +241,8 @@ public class GpsNetInitiatedHandler {
|
|||||||
* window after the end of that call.
|
* window after the end of that call.
|
||||||
* 3. If the device is in a emergency callback state, this is provided by querying
|
* 3. If the device is in a emergency callback state, this is provided by querying
|
||||||
* TelephonyManager.
|
* TelephonyManager.
|
||||||
|
* 4. If the user has recently sent an Emergency SMS and telephony reports that it is in
|
||||||
|
* emergency SMS mode, this is provided by querying TelephonyManager.
|
||||||
* @return true if is considered in user initiated emergency mode for NI purposes
|
* @return true if is considered in user initiated emergency mode for NI purposes
|
||||||
*/
|
*/
|
||||||
public boolean getInEmergency() {
|
public boolean getInEmergency() {
|
||||||
@@ -248,7 +250,9 @@ public class GpsNetInitiatedHandler {
|
|||||||
(SystemClock.elapsedRealtime() - mCallEndElapsedRealtimeMillis) <
|
(SystemClock.elapsedRealtime() - mCallEndElapsedRealtimeMillis) <
|
||||||
mEmergencyExtensionMillis;
|
mEmergencyExtensionMillis;
|
||||||
boolean isInEmergencyCallback = mTelephonyManager.getEmergencyCallbackMode();
|
boolean isInEmergencyCallback = mTelephonyManager.getEmergencyCallbackMode();
|
||||||
return mIsInEmergencyCall || isInEmergencyCallback || isInEmergencyExtension;
|
boolean isInEmergencySmsMode = mTelephonyManager.isInEmergencySmsMode();
|
||||||
|
return mIsInEmergencyCall || isInEmergencyCallback || isInEmergencyExtension
|
||||||
|
|| isInEmergencySmsMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setEmergencyExtensionSeconds(int emergencyExtensionSeconds) {
|
public void setEmergencyExtensionSeconds(int emergencyExtensionSeconds) {
|
||||||
|
|||||||
@@ -1534,6 +1534,21 @@ public class CarrierConfigManager {
|
|||||||
public static final String KEY_ALLOW_NON_EMERGENCY_CALLS_IN_ECM_BOOL =
|
public static final String KEY_ALLOW_NON_EMERGENCY_CALLS_IN_ECM_BOOL =
|
||||||
"allow_non_emergency_calls_in_ecm_bool";
|
"allow_non_emergency_calls_in_ecm_bool";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Time that the telephony framework stays in "emergency SMS mode" after an emergency SMS is
|
||||||
|
* sent to the network. This is used by carriers to configure the time
|
||||||
|
* {@link TelephonyManager#isInEmergencySmsMode()} will be true after an emergency SMS is sent.
|
||||||
|
* This is used by GNSS to override user location permissions so that the carrier network can
|
||||||
|
* get the user's location for emergency services.
|
||||||
|
*
|
||||||
|
* The default is 0, which means that this feature is disabled. The maximum value for this timer
|
||||||
|
* is 300000 mS (5 minutes).
|
||||||
|
*
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public static final String KEY_EMERGENCY_SMS_MODE_TIMER_MS_INT =
|
||||||
|
"emergency_sms_mode_timer_ms_int";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Flag indicating whether to allow carrier video calls to emergency numbers.
|
* Flag indicating whether to allow carrier video calls to emergency numbers.
|
||||||
* When {@code true}, video calls to emergency numbers will be allowed. When {@code false},
|
* When {@code true}, video calls to emergency numbers will be allowed. When {@code false},
|
||||||
@@ -2745,6 +2760,7 @@ public class CarrierConfigManager {
|
|||||||
sDefaults.putString(KEY_MMS_UA_PROF_URL_STRING, "");
|
sDefaults.putString(KEY_MMS_UA_PROF_URL_STRING, "");
|
||||||
sDefaults.putString(KEY_MMS_USER_AGENT_STRING, "");
|
sDefaults.putString(KEY_MMS_USER_AGENT_STRING, "");
|
||||||
sDefaults.putBoolean(KEY_ALLOW_NON_EMERGENCY_CALLS_IN_ECM_BOOL, true);
|
sDefaults.putBoolean(KEY_ALLOW_NON_EMERGENCY_CALLS_IN_ECM_BOOL, true);
|
||||||
|
sDefaults.putInt(KEY_EMERGENCY_SMS_MODE_TIMER_MS_INT, 0);
|
||||||
sDefaults.putBoolean(KEY_USE_RCS_PRESENCE_BOOL, false);
|
sDefaults.putBoolean(KEY_USE_RCS_PRESENCE_BOOL, false);
|
||||||
sDefaults.putBoolean(KEY_FORCE_IMEI_BOOL, false);
|
sDefaults.putBoolean(KEY_FORCE_IMEI_BOOL, false);
|
||||||
sDefaults.putInt(
|
sDefaults.putInt(
|
||||||
|
|||||||
@@ -6993,6 +6993,35 @@ public class TelephonyManager {
|
|||||||
return mode;
|
return mode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Query Telephony to see if there has recently been an emergency SMS sent to the network by the
|
||||||
|
* user and we are still within the time interval after the emergency SMS was sent that we are
|
||||||
|
* considered in Emergency SMS mode.
|
||||||
|
*
|
||||||
|
* <p>This mode is used by other applications to allow them to perform special functionality,
|
||||||
|
* such as allow the GNSS service to provide user location to the carrier network for emergency
|
||||||
|
* when an emergency SMS is sent. This interval is set by
|
||||||
|
* {@link CarrierConfigManager#KEY_EMERGENCY_SMS_MODE_TIMER_MS_INT}. If
|
||||||
|
* the carrier does not support this mode, this function will always return false.
|
||||||
|
*
|
||||||
|
* @return true if this device is in emergency SMS mode, false otherwise.
|
||||||
|
*
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
@RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
|
||||||
|
public boolean isInEmergencySmsMode() {
|
||||||
|
|
||||||
|
try {
|
||||||
|
ITelephony telephony = getITelephony();
|
||||||
|
if (telephony != null) {
|
||||||
|
return telephony.isInEmergencySmsMode();
|
||||||
|
}
|
||||||
|
} catch (RemoteException ex) {
|
||||||
|
Rlog.e(TAG, "getNetworkSelectionMode RemoteException", ex);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the preferred network type.
|
* Set the preferred network type.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -1707,6 +1707,11 @@ interface ITelephony {
|
|||||||
*/
|
*/
|
||||||
int getNetworkSelectionMode(int subId);
|
int getNetworkSelectionMode(int subId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return true if the device is in emergency sms mode, false otherwise.
|
||||||
|
*/
|
||||||
|
boolean isInEmergencySmsMode();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a list of SMS apps on a user.
|
* Get a list of SMS apps on a user.
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user