diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java index 5b2892b7a868f..3c841a478d684 100644 --- a/telephony/java/android/telephony/CarrierConfigManager.java +++ b/telephony/java/android/telephony/CarrierConfigManager.java @@ -1500,6 +1500,14 @@ public class CarrierConfigManager { public static final String IMSI_KEY_EXPIRATION_DAYS_TIME_INT = "imsi_key_expiration_days_time_int"; + /** + * Flag specifying whether IMS registration state menu is shown in Status Info setting, + * default to false. + * @hide + */ + public static final String KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL = + "show_ims_registration_status_bool"; + /** The default value for every variable. */ private final static PersistableBundle sDefaults; @@ -1752,6 +1760,7 @@ public class CarrierConfigManager { sDefaults.putStringArray(KEY_ROAMING_OPERATOR_STRING_ARRAY, null); sDefaults.putInt(IMSI_KEY_EXPIRATION_DAYS_TIME_INT, IMSI_ENCRYPTION_DAYS_TIME_DISABLED); sDefaults.putString(IMSI_KEY_DOWNLOAD_URL_STRING, null); + sDefaults.putBoolean(KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL, false); } /** diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index 2b4991f57cd42..4edb069a33094 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -5795,6 +5795,25 @@ public class TelephonyManager { } } + /** + * Returns the IMS Registration Status for a particular Subscription ID + * + * @param subId Subscription ID + * @return true if IMS status is registered, false if the IMS status is not registered or a + * RemoteException occurred. + * + * @hide + */ + public boolean isImsRegistered(int subId) { + try { + return getITelephony().isImsRegisteredForSubscriber(subId); + } catch (RemoteException ex) { + return false; + } catch (NullPointerException ex) { + return false; + } + } + /** * Returns the Status of Volte * @hide diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl index ab7c5e722c245..0dd846e31841b 100644 --- a/telephony/java/com/android/internal/telephony/ITelephony.aidl +++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl @@ -1079,6 +1079,15 @@ interface ITelephony { */ boolean isImsRegistered(); + /** + * Get IMS Registration Status on a particular subid. + * + * @param subId user preferred subId. + * + * @return {@code true} if the IMS status is registered. + */ + boolean isImsRegisteredForSubscriber(int subId); + /** * Returns the Status of Wi-Fi Calling */