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.FeatureProvisioningCallback
        Callback 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 either 0 or a combination of ImsRcsManager.CAPABILITY_TYPE_NONE, ImsRcsManager.CAPABILITY_TYPE_OPTIONS_UCE, and ImsRcsManager.CAPABILITY_TYPE_PRESENCE_UCE | 
      
tech | 
        
          int: Value is ImsRegistrationImplBase.REGISTRATION_TECH_NONE, ImsRegistrationImplBase.REGISTRATION_TECH_LTE, ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN, ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM, ImsRegistrationImplBase.REGISTRATION_TECH_NR, or ImsRegistrationImplBase.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 either 0 or a combination of ImsRcsManager.CAPABILITY_TYPE_NONE, ImsRcsManager.CAPABILITY_TYPE_OPTIONS_UCE, and ImsRcsManager.CAPABILITY_TYPE_PRESENCE_UCE | 
      
tech | 
        
          int: Value is ImsRegistrationImplBase.REGISTRATION_TECH_NONE, ImsRegistrationImplBase.REGISTRATION_TECH_LTE, ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN, ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM, ImsRegistrationImplBase.REGISTRATION_TECH_NR, or ImsRegistrationImplBase.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 be null.
 Callback and listener events are dispatched through this
 Executor, providing an easy way to control which thread is
 used. To dispatch events through the main thread of your
 application, you can use
 Context.getMainExecutor().
 Otherwise, provide an Executor that dispatches to an appropriate thread. | 
      
callback | 
        
          ProvisioningManager.FeatureProvisioningCallback: The callback instance being registered.
 This value cannot be null. | 
      
| 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 either 0 or a combination of MmTelFeature.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, and MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_CALL_COMPOSER_BUSINESS_ONLY | 
      
tech | 
        
          int: Value is ImsRegistrationImplBase.REGISTRATION_TECH_NONE, ImsRegistrationImplBase.REGISTRATION_TECH_LTE, ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN, ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM, ImsRegistrationImplBase.REGISTRATION_TECH_NR, or ImsRegistrationImplBase.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 either 0 or a combination of ImsRcsManager.CAPABILITY_TYPE_NONE, ImsRcsManager.CAPABILITY_TYPE_OPTIONS_UCE, and ImsRcsManager.CAPABILITY_TYPE_PRESENCE_UCE | 
      
tech | 
        
          int: Value is ImsRegistrationImplBase.REGISTRATION_TECH_NONE, ImsRegistrationImplBase.REGISTRATION_TECH_LTE, ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN, ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM, ImsRegistrationImplBase.REGISTRATION_TECH_NR, or ImsRegistrationImplBase.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 existing FeatureProvisioningCallback to be removed.
 This value cannot be null. | 
      
| 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.