ProvisioningManager
  public
  
  
  
  class
  ProvisioningManager
  
    extends Object
  
  
  
  
  
  
| java.lang.Object | |
| ↳ | android.telephony.ims.ProvisioningManager | 
Manages IMS provisioning and configuration parameters, as well as callbacks for apps to listen
 to changes in these configurations.
 IMS provisioning keys are defined per carrier or OEM using OMA-DM or other provisioning
 applications and may vary. It is up to the carrier and OEM applications to ensure that the
 correct provisioning keys are being used when integrating with a vendor's ImsService.
 Use ImsManager.getProvisioningManager(int) to get an instance of
 this manager.
 
 Requires the PackageManager#FEATURE_TELEPHONY_IMS feature which can be detected using PackageManager.hasSystemFeature(String).
Summary
| Nested classes | |
|---|---|
| 
        
        
        
        
        class | ProvisioningManager.FeatureProvisioningCallbackCallback for IMS provisioning feature changes. | 
| Public methods | |
|---|---|
| 
        
        
        
        
        
        boolean | 
      getProvisioningStatusForCapability(int capability, int tech)
      Get the provisioning status for the IMS MmTel capability specified. | 
| 
        
        
        
        
        
        boolean | 
      getRcsProvisioningStatusForCapability(int capability, int tech)
      Get the provisioning status for the IMS RCS capability specified. | 
| 
        
        
        
        
        
        boolean | 
      isProvisioningRequiredForCapability(int capability, int tech)
      Indicates whether provisioning for the MMTEL capability and IMS registration technology specified is required or not Requires Permission: 
 | 
| 
        
        
        
        
        
        boolean | 
      isRcsProvisioningRequiredForCapability(int capability, int tech)
      Indicates whether provisioning for the RCS capability and IMS registration technology specified is required or not Requires Permission: 
 | 
| 
        
        
        
        
        
        void | 
      registerFeatureProvisioningChangedCallback(Executor executor, ProvisioningManager.FeatureProvisioningCallback callback)
      Register a new  | 
| 
        
        
        
        
        
        void | 
      setProvisioningStatusForCapability(int capability, int tech, boolean isProvisioned)
      Set the provisioning status for the IMS MmTel capability using the specified subscription. | 
| 
        
        
        
        
        
        void | 
      setRcsProvisioningStatusForCapability(int capability, int tech, boolean isProvisioned)
      Set the provisioning status for the IMS RCS capability using the specified subscription. | 
| 
        
        
        
        
        
        void | 
      unregisterFeatureProvisioningChangedCallback(ProvisioningManager.FeatureProvisioningCallback callback)
      Unregisters a previously registered  | 
| Inherited methods | |
|---|---|
Public methods
getProvisioningStatusForCapability
public boolean getProvisioningStatusForCapability (int capability, 
                int tech)Get the provisioning status for the IMS MmTel capability specified.
 If provisioning is not required for the queried capability and
 tech combination specified, this method will
 always return true.
 
Requires Permission:
- android.Manifest.permission#READ_PRIVILEGED_PHONE_STATE,
- Manifest.permission.READ_PRECISE_PHONE_STATE,
- or that the caller has carrier privileges (see
         TelephonyManager.hasCarrierPrivileges()).
This method may take several seconds to complete, so it should only be called from a worker thread.
Requires
Manifest.permission.READ_PRECISE_PHONE_STATE
    | Returns | |
|---|---|
| boolean | true if the device is provisioned for the capability or does not require provisioning, false if the capability does require provisioning and has not been provisioned yet. | 
| Throws | |
|---|---|
| UnsupportedOperationException | If the device does not have PackageManager.FEATURE_TELEPHONY_IMS. | 
getRcsProvisioningStatusForCapability
public boolean getRcsProvisioningStatusForCapability (int capability, 
                int tech)Get the provisioning status for the IMS RCS capability specified.
 If provisioning is not required for the queried
 capability or if the device does not support IMS
 this method will always return true.
 
Requires Permission:
- Manifest.permission.READ_PRECISE_PHONE_STATE,
- or that the caller has carrier privileges (see
         TelephonyManager.hasCarrierPrivileges()).
This method may take several seconds to complete, so it should only be called from a worker thread.
Requires
Manifest.permission.READ_PRECISE_PHONE_STATE
    | Parameters | |
|---|---|
| capability | int: Value is either0or a combination ofImsRcsManager.CAPABILITY_TYPE_NONE,ImsRcsManager.CAPABILITY_TYPE_OPTIONS_UCE, andImsRcsManager.CAPABILITY_TYPE_PRESENCE_UCE | 
| tech | int: Value isImsRegistrationImplBase.REGISTRATION_TECH_NONE,ImsRegistrationImplBase.REGISTRATION_TECH_LTE,ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN,ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM,ImsRegistrationImplBase.REGISTRATION_TECH_NR, orImsRegistrationImplBase.REGISTRATION_TECH_3G | 
| Returns | |
|---|---|
| boolean | true if the device is provisioned for the capability or does not require provisioning, false if the capability does require provisioning and has not been provisioned yet. | 
| Throws | |
|---|---|
| UnsupportedOperationException | If the device does not have PackageManager.FEATURE_TELEPHONY_IMS. | 
isProvisioningRequiredForCapability
public boolean isProvisioningRequiredForCapability (int capability, 
                int tech)Indicates whether provisioning for the MMTEL capability and IMS registration technology specified is required or not
Requires Permission:
- android.Manifest.permission#READ_PRIVILEGED_PHONE_STATE,
- Manifest.permission.READ_PRECISE_PHONE_STATE,
-  or that the caller has carrier privileges (see
         TelephonyManager.hasCarrierPrivileges()).
Requires
Manifest.permission.READ_PRECISE_PHONE_STATE
    | Returns | |
|---|---|
| boolean | true if provisioning is required for the MMTEL capability and IMS registration technology specified, false if it is not required or if the device does not support IMS. | 
| Throws | |
|---|---|
| UnsupportedOperationException | If the device does not have PackageManager.FEATURE_TELEPHONY_IMS. | 
isRcsProvisioningRequiredForCapability
public boolean isRcsProvisioningRequiredForCapability (int capability, 
                int tech)Indicates whether provisioning for the RCS capability and IMS registration technology specified is required or not
Requires Permission:
- android.Manifest.permission#READ_PRIVILEGED_PHONE_STATE,
- Manifest.permission.READ_PRECISE_PHONE_STATE,
-  or that the caller has carrier privileges (see
         TelephonyManager.hasCarrierPrivileges()).
Requires
Manifest.permission.READ_PRECISE_PHONE_STATE
    | Parameters | |
|---|---|
| capability | int: Value is either0or a combination ofImsRcsManager.CAPABILITY_TYPE_NONE,ImsRcsManager.CAPABILITY_TYPE_OPTIONS_UCE, andImsRcsManager.CAPABILITY_TYPE_PRESENCE_UCE | 
| tech | int: Value isImsRegistrationImplBase.REGISTRATION_TECH_NONE,ImsRegistrationImplBase.REGISTRATION_TECH_LTE,ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN,ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM,ImsRegistrationImplBase.REGISTRATION_TECH_NR, orImsRegistrationImplBase.REGISTRATION_TECH_3G | 
| Returns | |
|---|---|
| boolean | true if provisioning is required for the RCS capability and IMS registration technology specified, false if it is not required or if the device does not support IMS. | 
| Throws | |
|---|---|
| UnsupportedOperationException | If the device does not have PackageManager.FEATURE_TELEPHONY_IMS. | 
registerFeatureProvisioningChangedCallback
public void registerFeatureProvisioningChangedCallback (Executor executor, ProvisioningManager.FeatureProvisioningCallback callback)
Register a new FeatureProvisioningCallback, which is used to listen for
 IMS feature provisioning updates.
 
When the subscription associated with this callback is removed (SIM removed, ESIM swap,etc...), this callback will automatically be removed.
Requires Permission:
- android.Manifest.permission#READ_PRIVILEGED_PHONE_STATE,
- Manifest.permission.READ_PRECISE_PHONE_STATE,
- or that the caller has carrier privileges (see
         TelephonyManager.hasCarrierPrivileges()).
Requires
Manifest.permission.READ_PRECISE_PHONE_STATE
    | Parameters | |
|---|---|
| executor | Executor: The executor that the callback methods will be called on.
 This value cannot benull.
 Callback and listener events are dispatched through thisExecutor, providing an easy way to control which thread is
 used. To dispatch events through the main thread of your
 application, you can useContext.getMainExecutor().
 Otherwise, provide anExecutorthat dispatches to an appropriate thread. | 
| callback | ProvisioningManager.FeatureProvisioningCallback: The callback instance being registered.
 This value cannot benull. | 
| Throws | |
|---|---|
| ImsException | if the subscription associated with this callback is
 valid, but the service crashed, for example. See ImsException.getCode()for a more detailed reason. | 
| UnsupportedOperationException | If the device does not have PackageManager.FEATURE_TELEPHONY_IMS. | 
setProvisioningStatusForCapability
public void setProvisioningStatusForCapability (int capability, 
                int tech, 
                boolean isProvisioned)Set the provisioning status for the IMS MmTel capability using the specified subscription. Provisioning may or may not be required, depending on the carrier configuration. If provisioning is not required for the carrier associated with this subscription or the device does not support the capability/technology combination specified, this operation will be a no-op.
Requires Permission:
- Manifest.permission.MODIFY_PHONE_STATE,
- or that the calling app has carrier privileges (see
- TelephonyManager.hasCarrierPrivileges).
This method may take several seconds to complete, so it should only be called from a worker thread.
Requires
Manifest.permission.MODIFY_PHONE_STATE
    | Parameters | |
|---|---|
| capability | int: Value is either0or a combination ofMmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE,MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO,MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_UT,MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_SMS,MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_CALL_COMPOSER, andMmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_CALL_COMPOSER_BUSINESS_ONLY | 
| tech | int: Value isImsRegistrationImplBase.REGISTRATION_TECH_NONE,ImsRegistrationImplBase.REGISTRATION_TECH_LTE,ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN,ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM,ImsRegistrationImplBase.REGISTRATION_TECH_NR, orImsRegistrationImplBase.REGISTRATION_TECH_3G | 
| isProvisioned | boolean: true if the device is provisioned for UT over IMS, false otherwise. | 
| Throws | |
|---|---|
| UnsupportedOperationException | If the device does not have PackageManager.FEATURE_TELEPHONY_IMS. | 
setRcsProvisioningStatusForCapability
public void setRcsProvisioningStatusForCapability (int capability, 
                int tech, 
                boolean isProvisioned)Set the provisioning status for the IMS RCS capability using the specified subscription. Provisioning may or may not be required, depending on the carrier configuration. If provisioning is not required for the carrier associated with this subscription or the device does not support the capability/technology combination specified, this operation will be a no-op.
Requires Permission:
- Manifest.permission.MODIFY_PHONE_STATE,
- or that the caller has carrier privileges (see
         TelephonyManager.hasCarrierPrivileges()).
This method may take several seconds to complete, so it should only be called from a worker thread.
Requires
Manifest.permission.MODIFY_PHONE_STATE
    | Parameters | |
|---|---|
| capability | int: Value is either0or a combination ofImsRcsManager.CAPABILITY_TYPE_NONE,ImsRcsManager.CAPABILITY_TYPE_OPTIONS_UCE, andImsRcsManager.CAPABILITY_TYPE_PRESENCE_UCE | 
| tech | int: Value isImsRegistrationImplBase.REGISTRATION_TECH_NONE,ImsRegistrationImplBase.REGISTRATION_TECH_LTE,ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN,ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM,ImsRegistrationImplBase.REGISTRATION_TECH_NR, orImsRegistrationImplBase.REGISTRATION_TECH_3G | 
| isProvisioned | boolean: true if the device is provisioned for the RCS capability specified,
                      false otherwise. | 
| Throws | |
|---|---|
| UnsupportedOperationException | If the device does not have PackageManager.FEATURE_TELEPHONY_IMS. | 
unregisterFeatureProvisioningChangedCallback
public void unregisterFeatureProvisioningChangedCallback (ProvisioningManager.FeatureProvisioningCallback callback)
Unregisters a previously registered FeatureProvisioningCallback
 instance.  When the subscription associated with this
 callback is removed (SIM removed, ESIM swap, etc...), this callback will
 automatically be removed. If this method is called for an inactive
 subscription, it will result in a no-op.
| Parameters | |
|---|---|
| callback | ProvisioningManager.FeatureProvisioningCallback: The existingFeatureProvisioningCallbackto be removed.
 This value cannot benull. | 
| Throws | |
|---|---|
| UnsupportedOperationException | If the device does not have PackageManager.FEATURE_TELEPHONY_IMS. | 
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-02-10 UTC.
