Loading core/api/current.txt +39 −0 Original line number Diff line number Diff line Loading @@ -44734,6 +44734,7 @@ package android.telephony.ims { public class ImsManager { method @NonNull public android.telephony.ims.ImsMmTelManager getImsMmTelManager(int); method @NonNull public android.telephony.ims.ImsRcsManager getImsRcsManager(int); method @NonNull public android.telephony.ims.ProvisioningManager getProvisioningManager(int); field public static final String ACTION_WFC_IMS_REGISTRATION_ERROR = "android.telephony.ims.action.WFC_IMS_REGISTRATION_ERROR"; field public static final String EXTRA_WFC_REGISTRATION_FAILURE_MESSAGE = "android.telephony.ims.extra.WFC_REGISTRATION_FAILURE_MESSAGE"; field public static final String EXTRA_WFC_REGISTRATION_FAILURE_TITLE = "android.telephony.ims.extra.WFC_REGISTRATION_FAILURE_TITLE"; Loading Loading @@ -44984,6 +44985,23 @@ package android.telephony.ims { field public static final int REASON_UNKNOWN_TEMPORARY_ERROR = 1; // 0x1 } public class ProvisioningManager { method @RequiresPermission(android.Manifest.permission.READ_PRECISE_PHONE_STATE) @WorkerThread public boolean getProvisioningStatusForCapability(int, int); method @RequiresPermission(android.Manifest.permission.READ_PRECISE_PHONE_STATE) @WorkerThread public boolean getRcsProvisioningStatusForCapability(int, int); method @RequiresPermission(android.Manifest.permission.READ_PRECISE_PHONE_STATE) public boolean isProvisioningRequiredForCapability(int, int); method @RequiresPermission(android.Manifest.permission.READ_PRECISE_PHONE_STATE) public boolean isRcsProvisioningRequiredForCapability(int, int); method @RequiresPermission(android.Manifest.permission.READ_PRECISE_PHONE_STATE) public void registerFeatureProvisioningChangedCallback(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.ProvisioningManager.FeatureProvisioningCallback) throws android.telephony.ims.ImsException; method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) @WorkerThread public void setProvisioningStatusForCapability(int, int, boolean); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) @WorkerThread public void setRcsProvisioningStatusForCapability(int, int, boolean); method public void unregisterFeatureProvisioningChangedCallback(@NonNull android.telephony.ims.ProvisioningManager.FeatureProvisioningCallback); } public static class ProvisioningManager.FeatureProvisioningCallback { ctor public ProvisioningManager.FeatureProvisioningCallback(); method public void onFeatureProvisioningChanged(int, int, boolean); method public void onRcsFeatureProvisioningChanged(int, int, boolean); } public class RcsUceAdapter { method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public boolean isUceSettingEnabled() throws android.telephony.ims.ImsException; } Loading Loading @@ -45024,6 +45042,27 @@ package android.telephony.ims.feature { field public static final int CAPABILITY_TYPE_VOICE = 1; // 0x1 } public class RcsFeature { } public static class RcsFeature.RcsImsCapabilities { field public static final int CAPABILITY_TYPE_NONE = 0; // 0x0 field public static final int CAPABILITY_TYPE_OPTIONS_UCE = 1; // 0x1 field public static final int CAPABILITY_TYPE_PRESENCE_UCE = 2; // 0x2 } } package android.telephony.ims.stub { public class ImsRegistrationImplBase { field public static final int REGISTRATION_TECH_CROSS_SIM = 2; // 0x2 field public static final int REGISTRATION_TECH_IWLAN = 1; // 0x1 field public static final int REGISTRATION_TECH_LTE = 0; // 0x0 field public static final int REGISTRATION_TECH_NONE = -1; // 0xffffffff field public static final int REGISTRATION_TECH_NR = 3; // 0x3 } } package android.telephony.mbms { core/api/system-current.txt +2 −12 Original line number Diff line number Diff line Loading @@ -14408,18 +14408,16 @@ package android.telephony.ims { public class ProvisioningManager { method @NonNull public static android.telephony.ims.ProvisioningManager createForSubscriptionId(int); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) @WorkerThread public int getProvisioningIntValue(int); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) @WorkerThread public boolean getProvisioningStatusForCapability(int, int); method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) @WorkerThread public String getProvisioningStringValue(int); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) @WorkerThread public boolean getRcsProvisioningStatusForCapability(int); method @Deprecated @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) @WorkerThread public boolean getRcsProvisioningStatusForCapability(int); method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.PERFORM_IMS_SINGLE_REGISTRATION}) public boolean isRcsVolteSingleRegistrationCapable() throws android.telephony.ims.ImsException; method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void notifyRcsAutoConfigurationReceived(@NonNull byte[], boolean); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void registerProvisioningChangedCallback(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.ProvisioningManager.Callback) throws android.telephony.ims.ImsException; method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.PERFORM_IMS_SINGLE_REGISTRATION}) public void registerRcsProvisioningCallback(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.ProvisioningManager.RcsProvisioningCallback) throws android.telephony.ims.ImsException; method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) @WorkerThread public int setProvisioningIntValue(int, int); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) @WorkerThread public void setProvisioningStatusForCapability(int, int, boolean); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) @WorkerThread public int setProvisioningStringValue(int, @NonNull String); method @RequiresPermission(android.Manifest.permission.PERFORM_IMS_SINGLE_REGISTRATION) public void setRcsClientConfiguration(@NonNull android.telephony.ims.RcsClientConfiguration) throws android.telephony.ims.ImsException; method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) @WorkerThread public void setRcsProvisioningStatusForCapability(int, boolean); method @Deprecated @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) @WorkerThread public void setRcsProvisioningStatusForCapability(int, boolean); method @RequiresPermission(android.Manifest.permission.PERFORM_IMS_SINGLE_REGISTRATION) public void triggerRcsReconfiguration(); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void unregisterProvisioningChangedCallback(@NonNull android.telephony.ims.ProvisioningManager.Callback); method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.PERFORM_IMS_SINGLE_REGISTRATION}) public void unregisterRcsProvisioningCallback(@NonNull android.telephony.ims.ProvisioningManager.RcsProvisioningCallback); Loading Loading @@ -14852,9 +14850,6 @@ package android.telephony.ims.feature { method public void addCapabilities(int); method public boolean isCapable(int); method public void removeCapabilities(int); field public static final int CAPABILITY_TYPE_NONE = 0; // 0x0 field public static final int CAPABILITY_TYPE_OPTIONS_UCE = 1; // 0x1 field public static final int CAPABILITY_TYPE_PRESENCE_UCE = 2; // 0x2 } } Loading Loading @@ -15004,11 +14999,6 @@ package android.telephony.ims.stub { method public void triggerFullNetworkRegistration(@IntRange(from=100, to=699) int, @Nullable String); method public void triggerSipDelegateDeregistration(); method public void updateSipDelegateRegistration(); field public static final int REGISTRATION_TECH_CROSS_SIM = 2; // 0x2 field public static final int REGISTRATION_TECH_IWLAN = 1; // 0x1 field public static final int REGISTRATION_TECH_LTE = 0; // 0x0 field public static final int REGISTRATION_TECH_NONE = -1; // 0xffffffff field public static final int REGISTRATION_TECH_NR = 3; // 0x3 } public class ImsSmsImplBase { telephony/java/android/telephony/CarrierConfigManager.java +32 −0 Original line number Diff line number Diff line Loading @@ -5173,6 +5173,36 @@ public class CarrierConfigManager { /** E911 RTP inactivity occurred when call is connected. */ public static final int E911_RTP_INACTIVITY_ON_CONNECTED = 4; /** * An array of strings, each entry contains a MMTEL capability and registration * technology tuple that requires provisioning. If a tuple is not present, the * framework will not require that the tuple requires provisioning before * enabling the capability. * <p> * Format for each tuple is two integers separated by a comma. The first * integer is an integer defined in * {@link MmTelFeature.MmTelCapabilities.MmTelCapability} and the second integer is * {@link android.telephony.ims.stub.ImsRegistrationImplBase.ImsRegistrationTech} * @hide */ public static final String KEY_MMTEL_REQUIRES_PROVISIONING_STRING_ARRAY = KEY_PREFIX + "mmtel_requires_provisioning_string_array"; /** * An array of strings, each entry contains a RCS capability and registration * technology tuple that requires provisioning. If a tuple is not present, the * framework will not require that the tuple requires provisioning before * enabling the capability. * <p> * Format for each tuple is two integers separated by a comma. The first * integer is an integer defined in * {@link RcsFeature.RcsImsCapabilities.RcsImsCapabilityFlag} and the second integer is * {@link android.telephony.ims.stub.ImsRegistrationImplBase.ImsRegistrationTech} * @hide */ public static final String KEY_RCS_REQUIRES_PROVISIONING_STRING_ARRAY = KEY_PREFIX + "rcs_requires_provisioning_string_array"; private Ims() {} private static PersistableBundle getDefaults() { Loading Loading @@ -5208,6 +5238,8 @@ public class CarrierConfigManager { "+g.3gpp.iari-ref=\"urn%3Aurn-7%3A3gpp-application.ims.iari.rcs.chatbot.sa\"", "+g.gsma.rcs.botversion=\"#=1,#=2\"", "+g.gsma.rcs.cpimext"}); defaults.putStringArray(KEY_MMTEL_REQUIRES_PROVISIONING_STRING_ARRAY, new String[] {}); defaults.putStringArray(KEY_RCS_REQUIRES_PROVISIONING_STRING_ARRAY, new String[] {}); defaults.putBoolean(KEY_GRUU_ENABLED_BOOL, true); defaults.putBoolean(KEY_SIP_OVER_IPSEC_ENABLED_BOOL, true); Loading telephony/java/android/telephony/ImsManager.java +20 −0 Original line number Diff line number Diff line Loading @@ -163,6 +163,26 @@ public class ImsManager { return new SipDelegateManager(mContext, subscriptionId, sRcsCache, sTelephonyCache); } /** * Create an instance of {@link ProvisioningManager} for the subscription id specified. * <p> * Provides a ProvisioningManager instance to carrier apps to update carrier provisioning * information, as well as provides a callback so that apps can listen for changes * in MMTEL/RCS provisioning * @param subscriptionId The ID of the subscription that this ProvisioningManager will use. * @throws IllegalArgumentException if the subscription is invalid. * @return a ProvisioningManager instance with the specific subscription ID. */ @NonNull public ProvisioningManager getProvisioningManager(int subscriptionId) { if (!SubscriptionManager.isValidSubscriptionId(subscriptionId)) { throw new IllegalArgumentException("Invalid subscription ID: " + subscriptionId); } return new ProvisioningManager(subscriptionId); } private static IImsRcsController getIImsRcsControllerInterface() { return IImsRcsController.Stub.asInterface( TelephonyFrameworkInitializer Loading Loading
core/api/current.txt +39 −0 Original line number Diff line number Diff line Loading @@ -44734,6 +44734,7 @@ package android.telephony.ims { public class ImsManager { method @NonNull public android.telephony.ims.ImsMmTelManager getImsMmTelManager(int); method @NonNull public android.telephony.ims.ImsRcsManager getImsRcsManager(int); method @NonNull public android.telephony.ims.ProvisioningManager getProvisioningManager(int); field public static final String ACTION_WFC_IMS_REGISTRATION_ERROR = "android.telephony.ims.action.WFC_IMS_REGISTRATION_ERROR"; field public static final String EXTRA_WFC_REGISTRATION_FAILURE_MESSAGE = "android.telephony.ims.extra.WFC_REGISTRATION_FAILURE_MESSAGE"; field public static final String EXTRA_WFC_REGISTRATION_FAILURE_TITLE = "android.telephony.ims.extra.WFC_REGISTRATION_FAILURE_TITLE"; Loading Loading @@ -44984,6 +44985,23 @@ package android.telephony.ims { field public static final int REASON_UNKNOWN_TEMPORARY_ERROR = 1; // 0x1 } public class ProvisioningManager { method @RequiresPermission(android.Manifest.permission.READ_PRECISE_PHONE_STATE) @WorkerThread public boolean getProvisioningStatusForCapability(int, int); method @RequiresPermission(android.Manifest.permission.READ_PRECISE_PHONE_STATE) @WorkerThread public boolean getRcsProvisioningStatusForCapability(int, int); method @RequiresPermission(android.Manifest.permission.READ_PRECISE_PHONE_STATE) public boolean isProvisioningRequiredForCapability(int, int); method @RequiresPermission(android.Manifest.permission.READ_PRECISE_PHONE_STATE) public boolean isRcsProvisioningRequiredForCapability(int, int); method @RequiresPermission(android.Manifest.permission.READ_PRECISE_PHONE_STATE) public void registerFeatureProvisioningChangedCallback(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.ProvisioningManager.FeatureProvisioningCallback) throws android.telephony.ims.ImsException; method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) @WorkerThread public void setProvisioningStatusForCapability(int, int, boolean); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) @WorkerThread public void setRcsProvisioningStatusForCapability(int, int, boolean); method public void unregisterFeatureProvisioningChangedCallback(@NonNull android.telephony.ims.ProvisioningManager.FeatureProvisioningCallback); } public static class ProvisioningManager.FeatureProvisioningCallback { ctor public ProvisioningManager.FeatureProvisioningCallback(); method public void onFeatureProvisioningChanged(int, int, boolean); method public void onRcsFeatureProvisioningChanged(int, int, boolean); } public class RcsUceAdapter { method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public boolean isUceSettingEnabled() throws android.telephony.ims.ImsException; } Loading Loading @@ -45024,6 +45042,27 @@ package android.telephony.ims.feature { field public static final int CAPABILITY_TYPE_VOICE = 1; // 0x1 } public class RcsFeature { } public static class RcsFeature.RcsImsCapabilities { field public static final int CAPABILITY_TYPE_NONE = 0; // 0x0 field public static final int CAPABILITY_TYPE_OPTIONS_UCE = 1; // 0x1 field public static final int CAPABILITY_TYPE_PRESENCE_UCE = 2; // 0x2 } } package android.telephony.ims.stub { public class ImsRegistrationImplBase { field public static final int REGISTRATION_TECH_CROSS_SIM = 2; // 0x2 field public static final int REGISTRATION_TECH_IWLAN = 1; // 0x1 field public static final int REGISTRATION_TECH_LTE = 0; // 0x0 field public static final int REGISTRATION_TECH_NONE = -1; // 0xffffffff field public static final int REGISTRATION_TECH_NR = 3; // 0x3 } } package android.telephony.mbms {
core/api/system-current.txt +2 −12 Original line number Diff line number Diff line Loading @@ -14408,18 +14408,16 @@ package android.telephony.ims { public class ProvisioningManager { method @NonNull public static android.telephony.ims.ProvisioningManager createForSubscriptionId(int); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) @WorkerThread public int getProvisioningIntValue(int); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) @WorkerThread public boolean getProvisioningStatusForCapability(int, int); method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) @WorkerThread public String getProvisioningStringValue(int); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) @WorkerThread public boolean getRcsProvisioningStatusForCapability(int); method @Deprecated @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) @WorkerThread public boolean getRcsProvisioningStatusForCapability(int); method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.PERFORM_IMS_SINGLE_REGISTRATION}) public boolean isRcsVolteSingleRegistrationCapable() throws android.telephony.ims.ImsException; method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void notifyRcsAutoConfigurationReceived(@NonNull byte[], boolean); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void registerProvisioningChangedCallback(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.ProvisioningManager.Callback) throws android.telephony.ims.ImsException; method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.PERFORM_IMS_SINGLE_REGISTRATION}) public void registerRcsProvisioningCallback(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.ProvisioningManager.RcsProvisioningCallback) throws android.telephony.ims.ImsException; method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) @WorkerThread public int setProvisioningIntValue(int, int); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) @WorkerThread public void setProvisioningStatusForCapability(int, int, boolean); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) @WorkerThread public int setProvisioningStringValue(int, @NonNull String); method @RequiresPermission(android.Manifest.permission.PERFORM_IMS_SINGLE_REGISTRATION) public void setRcsClientConfiguration(@NonNull android.telephony.ims.RcsClientConfiguration) throws android.telephony.ims.ImsException; method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) @WorkerThread public void setRcsProvisioningStatusForCapability(int, boolean); method @Deprecated @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) @WorkerThread public void setRcsProvisioningStatusForCapability(int, boolean); method @RequiresPermission(android.Manifest.permission.PERFORM_IMS_SINGLE_REGISTRATION) public void triggerRcsReconfiguration(); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void unregisterProvisioningChangedCallback(@NonNull android.telephony.ims.ProvisioningManager.Callback); method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.PERFORM_IMS_SINGLE_REGISTRATION}) public void unregisterRcsProvisioningCallback(@NonNull android.telephony.ims.ProvisioningManager.RcsProvisioningCallback); Loading Loading @@ -14852,9 +14850,6 @@ package android.telephony.ims.feature { method public void addCapabilities(int); method public boolean isCapable(int); method public void removeCapabilities(int); field public static final int CAPABILITY_TYPE_NONE = 0; // 0x0 field public static final int CAPABILITY_TYPE_OPTIONS_UCE = 1; // 0x1 field public static final int CAPABILITY_TYPE_PRESENCE_UCE = 2; // 0x2 } } Loading Loading @@ -15004,11 +14999,6 @@ package android.telephony.ims.stub { method public void triggerFullNetworkRegistration(@IntRange(from=100, to=699) int, @Nullable String); method public void triggerSipDelegateDeregistration(); method public void updateSipDelegateRegistration(); field public static final int REGISTRATION_TECH_CROSS_SIM = 2; // 0x2 field public static final int REGISTRATION_TECH_IWLAN = 1; // 0x1 field public static final int REGISTRATION_TECH_LTE = 0; // 0x0 field public static final int REGISTRATION_TECH_NONE = -1; // 0xffffffff field public static final int REGISTRATION_TECH_NR = 3; // 0x3 } public class ImsSmsImplBase {
telephony/java/android/telephony/CarrierConfigManager.java +32 −0 Original line number Diff line number Diff line Loading @@ -5173,6 +5173,36 @@ public class CarrierConfigManager { /** E911 RTP inactivity occurred when call is connected. */ public static final int E911_RTP_INACTIVITY_ON_CONNECTED = 4; /** * An array of strings, each entry contains a MMTEL capability and registration * technology tuple that requires provisioning. If a tuple is not present, the * framework will not require that the tuple requires provisioning before * enabling the capability. * <p> * Format for each tuple is two integers separated by a comma. The first * integer is an integer defined in * {@link MmTelFeature.MmTelCapabilities.MmTelCapability} and the second integer is * {@link android.telephony.ims.stub.ImsRegistrationImplBase.ImsRegistrationTech} * @hide */ public static final String KEY_MMTEL_REQUIRES_PROVISIONING_STRING_ARRAY = KEY_PREFIX + "mmtel_requires_provisioning_string_array"; /** * An array of strings, each entry contains a RCS capability and registration * technology tuple that requires provisioning. If a tuple is not present, the * framework will not require that the tuple requires provisioning before * enabling the capability. * <p> * Format for each tuple is two integers separated by a comma. The first * integer is an integer defined in * {@link RcsFeature.RcsImsCapabilities.RcsImsCapabilityFlag} and the second integer is * {@link android.telephony.ims.stub.ImsRegistrationImplBase.ImsRegistrationTech} * @hide */ public static final String KEY_RCS_REQUIRES_PROVISIONING_STRING_ARRAY = KEY_PREFIX + "rcs_requires_provisioning_string_array"; private Ims() {} private static PersistableBundle getDefaults() { Loading Loading @@ -5208,6 +5238,8 @@ public class CarrierConfigManager { "+g.3gpp.iari-ref=\"urn%3Aurn-7%3A3gpp-application.ims.iari.rcs.chatbot.sa\"", "+g.gsma.rcs.botversion=\"#=1,#=2\"", "+g.gsma.rcs.cpimext"}); defaults.putStringArray(KEY_MMTEL_REQUIRES_PROVISIONING_STRING_ARRAY, new String[] {}); defaults.putStringArray(KEY_RCS_REQUIRES_PROVISIONING_STRING_ARRAY, new String[] {}); defaults.putBoolean(KEY_GRUU_ENABLED_BOOL, true); defaults.putBoolean(KEY_SIP_OVER_IPSEC_ENABLED_BOOL, true); Loading
telephony/java/android/telephony/ImsManager.java +20 −0 Original line number Diff line number Diff line Loading @@ -163,6 +163,26 @@ public class ImsManager { return new SipDelegateManager(mContext, subscriptionId, sRcsCache, sTelephonyCache); } /** * Create an instance of {@link ProvisioningManager} for the subscription id specified. * <p> * Provides a ProvisioningManager instance to carrier apps to update carrier provisioning * information, as well as provides a callback so that apps can listen for changes * in MMTEL/RCS provisioning * @param subscriptionId The ID of the subscription that this ProvisioningManager will use. * @throws IllegalArgumentException if the subscription is invalid. * @return a ProvisioningManager instance with the specific subscription ID. */ @NonNull public ProvisioningManager getProvisioningManager(int subscriptionId) { if (!SubscriptionManager.isValidSubscriptionId(subscriptionId)) { throw new IllegalArgumentException("Invalid subscription ID: " + subscriptionId); } return new ProvisioningManager(subscriptionId); } private static IImsRcsController getIImsRcsControllerInterface() { return IImsRcsController.Stub.asInterface( TelephonyFrameworkInitializer Loading