diff --git a/location/java/com/android/internal/location/GpsNetInitiatedHandler.java b/location/java/com/android/internal/location/GpsNetInitiatedHandler.java index 4c39c308ef872..6bc5e917aa32f 100644 --- a/location/java/com/android/internal/location/GpsNetInitiatedHandler.java +++ b/location/java/com/android/internal/location/GpsNetInitiatedHandler.java @@ -242,8 +242,7 @@ public class GpsNetInitiatedHandler { } public boolean getInEmergency() { - boolean isInEmergencyCallback = Boolean.parseBoolean( - SystemProperties.get(TelephonyProperties.PROPERTY_INECM_MODE)); + boolean isInEmergencyCallback = mTelephonyManager.getEmergencyCallbackMode(); return mIsInEmergency || isInEmergencyCallback; } diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index f9b754b0ead28..d60f25cb4db3d 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -6478,5 +6478,33 @@ public class TelephonyManager { return null; } + + /** + * Check if phone is in emergency callback mode + * @return true if phone is in emergency callback mode + * @hide + */ + public boolean getEmergencyCallbackMode() { + return getEmergencyCallbackMode(getSubId()); + } + + /** + * Check if phone is in emergency callback mode + * @return true if phone is in emergency callback mode + * @param subId the subscription ID that this action applies to. + * @hide + */ + public boolean getEmergencyCallbackMode(int subId) { + try { + ITelephony telephony = getITelephony(); + if (telephony == null) { + return false; + } + return telephony.getEmergencyCallbackMode(subId); + } catch (RemoteException e) { + Log.e(TAG, "Error calling ITelephony#getEmergencyCallbackMode", e); + } + return false; + } } diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl index 13a25ca57be33..b461a78249658 100644 --- a/telephony/java/com/android/internal/telephony/ITelephony.aidl +++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl @@ -1316,4 +1316,12 @@ interface ITelephony { * @param appType the icc application type, like {@link #APPTYPE_USIM} */ String[] getForbiddenPlmns(int subId, int appType); + + /** + * Check if phone is in emergency callback mode + * @return true if phone is in emergency callback mode + * @param subId the subscription ID that this action applies to. + * @hide + */ + boolean getEmergencyCallbackMode(int subId); }