TelephonyManager  |  API reference  |  Android Developers (original) (raw)


public class TelephonyManager
extends [Object](/reference/java/lang/Object) ``


Provides access to information about the telephony services on the device. Applications can use the methods in this class to determine telephony services and states, as well as to access some types of subscriber information. Applications can also register a listener to receive notification of telephony state changes.

The returned TelephonyManager will use the default subscription for all calls. To call an API for a specific subscription, use [createForSubscriptionId(int)](/reference/android/telephony/TelephonyManager#createForSubscriptionId%28int%29). e.g. telephonyManager = defaultSubTelephonyManager.createForSubscriptionId(subId);

Note that access to some telephony information is permission-protected. Your application cannot access the protected information unless it has the appropriate permissions declared in its manifest file. Where permissions apply, they are noted in the methods through which you access the protected information.

TelephonyManager is intended for use on devices that implement[FEATURE_TELEPHONY](/reference/android/content/pm/PackageManager#FEATURE%5FTELEPHONY). On devices that do not implement this feature, the behavior is not reliable.
Requires the [PackageManager#FEATURE_TELEPHONY](/reference/android/content/pm/PackageManager#FEATURE%5FTELEPHONY) feature which can be detected using [PackageManager.hasSystemFeature(String)](/reference/android/content/pm/PackageManager#hasSystemFeature%28java.lang.String%29).

Summary

Nested classes
class TelephonyManager.CallComposerException Exception that may be supplied to the callback in TelephonyManager.uploadCallComposerPicture(InputStream, String, Executor, OutcomeReceiver) if something goes awry.
class TelephonyManager.CellInfoCallback Callback for providing asynchronous CellInfo on request
class TelephonyManager.ModemErrorException Exception that is supplied to the callback in TelephonyManager.getNetworkSlicingConfiguration(Executor, OutcomeReceiver) if the modem returned a failure.
class TelephonyManager.NetworkSlicingException Exception that may be supplied to the callback in TelephonyManager.getNetworkSlicingConfiguration(Executor, OutcomeReceiver) if something goes awry.
class TelephonyManager.TimeoutException Exception that is supplied to the callback in TelephonyManager.getNetworkSlicingConfiguration(Executor, OutcomeReceiver) if the system timed out waiting for a response from the Radio.
class TelephonyManager.UssdResponseCallback Used to notify callers ofTelephonyManager.sendUssdRequest(String,UssdResponseCallback,Handler) when the network either successfully executes a USSD request, or if there was a failure while executing the request.
Constants
String ACTION_CARRIER_MESSAGING_CLIENT_SERVICE A service action that identifies a CarrierMessagingClientService subclass in the AndroidManifest.xml.
String ACTION_CARRIER_SIGNAL_DEFAULT_NETWORK_AVAILABLE Broadcast action sent when the availability of the system default network changes.
String ACTION_CARRIER_SIGNAL_PCO_VALUE Broadcast action sent when a PCO value becomes available from the modem.
String ACTION_CARRIER_SIGNAL_REDIRECTED Broadcast action sent when a data connection is redirected with validation failure.
String ACTION_CARRIER_SIGNAL_REQUEST_NETWORK_FAILED Broadcast action sent when a data connection setup fails.
String ACTION_CARRIER_SIGNAL_RESET Broadcast action sent when carrier apps should reset their internal state.
String ACTION_CONFIGURE_VOICEMAIL Open the voicemail settings activity to make changes to voicemail configuration.
String ACTION_MULTI_SIM_CONFIG_CHANGED Broadcast action to be received by Broadcast receivers.
String ACTION_NETWORK_COUNTRY_CHANGED Broadcast intent action for network country code changes.
String ACTION_PHONE_STATE_CHANGED Broadcast intent action indicating that the call state on the device has changed.
String ACTION_RESET_MOBILE_NETWORK_SETTINGS Activity action: Show setting to reset mobile networks.
String ACTION_RESPOND_VIA_MESSAGE The Phone app sends this intent when a user opts to respond-via-message during an incoming call.
String ACTION_SECRET_CODE Broadcast Action: A debug code has been entered in the dialer.
String ACTION_SHOW_VOICEMAIL_NOTIFICATION Broadcast intent action for letting the default dialer to know to show voicemail notification.
String ACTION_SUBSCRIPTION_CARRIER_IDENTITY_CHANGED Broadcast Action: The subscription carrier identity has changed.
String ACTION_SUBSCRIPTION_SPECIFIC_CARRIER_IDENTITY_CHANGED Broadcast Action: The subscription specific carrier identity has changed.
int ALLOWED_NETWORK_TYPES_REASON_CARRIER To indicate allowed network type change is requested by carrier.
int ALLOWED_NETWORK_TYPES_REASON_USER To indicate allowed network type change is requested by user.
int APPTYPE_CSIM UICC application type is CSIM
int APPTYPE_ISIM UICC application type is ISIM
int APPTYPE_RUIM UICC application type is RUIM
int APPTYPE_SIM UICC application type is SIM
int APPTYPE_UNKNOWN UICC application type is unknown or not specified
int APPTYPE_USIM UICC application type is USIM
int AUTHTYPE_EAP_AKA Authentication type for UICC challenge is EAP AKA.
int AUTHTYPE_EAP_SIM Authentication type for UICC challenge is EAP SIM.
int AUTHTYPE_GBA_BOOTSTRAP Authentication type for GBA Bootstrap Challenge.
int AUTHTYPE_GBA_NAF_KEY_EXTERNAL Authentication type for GBA Network Application Functions (NAF) key External Challenge.
int CALL_COMPOSER_STATUS_BUSINESS_ONLY Call composer status Business Only from user setting.
int CALL_COMPOSER_STATUS_OFF Call composer status OFF from user setting.
int CALL_COMPOSER_STATUS_ON Call composer status ON from user setting.
int CALL_STATE_IDLE Device call state: No activity.
int CALL_STATE_OFFHOOK Device call state: Off-hook.
int CALL_STATE_RINGING Device call state: Ringing.
String CAPABILITY_SLICING_CONFIG_SUPPORTED Indicates whether getNetworkSlicingConfiguration(Executor, OutcomeReceiver) is supported.
int CARRIER_RESTRICTION_STATUS_NOT_RESTRICTED The device is not restricted to a carrier
int CARRIER_RESTRICTION_STATUS_RESTRICTED The device is restricted to a carrier.
int CARRIER_RESTRICTION_STATUS_RESTRICTED_TO_CALLER The device is restricted to the carrier of the calling application.
int CARRIER_RESTRICTION_STATUS_UNKNOWN Carrier restriction status value is unknown, in case modem did not provide any information about carrier restriction status.
int CDMA_ROAMING_MODE_AFFILIATED This constant was deprecated in API level 36. Legacy CDMA is unsupported.
int CDMA_ROAMING_MODE_ANY This constant was deprecated in API level 36. Legacy CDMA is unsupported.
int CDMA_ROAMING_MODE_HOME This constant was deprecated in API level 36. Legacy CDMA is unsupported.
int CDMA_ROAMING_MODE_RADIO_DEFAULT This constant was deprecated in API level 36. Legacy CDMA is unsupported.
int DATA_ACTIVITY_DORMANT Data connection is active, but physical link is down
int DATA_ACTIVITY_IN Data connection activity: Currently receiving IP PPP traffic.
int DATA_ACTIVITY_INOUT Data connection activity: Currently both sending and receiving IP PPP traffic.
int DATA_ACTIVITY_NONE Data connection activity: No traffic.
int DATA_ACTIVITY_OUT Data connection activity: Currently sending IP PPP traffic.
int DATA_CONNECTED Data connection state: Connected.
int DATA_CONNECTING Data connection state: Currently setting up a data connection.
int DATA_DISCONNECTED Data connection state: Disconnected.
int DATA_DISCONNECTING Data connection state: Disconnecting.
int DATA_ENABLED_REASON_CARRIER To indicate enable or disable carrier data by the system based on carrier signalling or carrier privileged apps.
int DATA_ENABLED_REASON_OVERRIDE To indicate data was enabled or disabled due to mobile data policy overrides.
int DATA_ENABLED_REASON_POLICY To indicate that data control due to policy.
int DATA_ENABLED_REASON_THERMAL To indicate enable or disable data by thermal service.
int DATA_ENABLED_REASON_UNKNOWN To indicate that data was enabled or disabled due to an unknown reason.
int DATA_ENABLED_REASON_USER To indicate that user enabled or disabled data.
int DATA_HANDOVER_IN_PROGRESS Data connection state: Handover in progress.
int DATA_SUSPENDED Data connection state: Suspended.
int DATA_UNKNOWN Data connection state: Unknown.
int DEFAULT_PORT_INDEX Default port index for a UICC.
int ERI_FLASH This constant was deprecated in API level 36. Legacy CDMA is unsupported.
int ERI_OFF This constant was deprecated in API level 36. Legacy CDMA is unsupported.
int ERI_ON This constant was deprecated in API level 36. Legacy CDMA is unsupported.
String EVENT_DISPLAY_EMERGENCY_MESSAGE Event reported from the Telephony stack to indicate that the Connection is not able to find any network and likely will not get connected.
String EXTRA_ACTIVE_SIM_SUPPORTED_COUNT The number of active SIM supported by current multi-SIM config.
String EXTRA_APN_PROTOCOL An integer extra containing the protocol of the apn connection.
String EXTRA_APN_TYPE An integer extra containing the APN type.
String EXTRA_CALL_VOICEMAIL_INTENT The intent to call voicemail.
String EXTRA_CARRIER_ID An int extra used with ACTION_SUBSCRIPTION_CARRIER_IDENTITY_CHANGED which indicates the updated carrier id returned by TelephonyManager.getSimCarrierId().
String EXTRA_CARRIER_NAME An string extra used with ACTION_SUBSCRIPTION_CARRIER_IDENTITY_CHANGED which indicates the updated carrier name of the current subscription.
String EXTRA_DATA_FAIL_CAUSE An integer extra containing the data fail cause.
String EXTRA_DEFAULT_NETWORK_AVAILABLE A boolean extra indicating the availability of the default network.
String EXTRA_EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE Integer extra key used with EVENT_DISPLAY_EMERGENCY_MESSAGE which indicates the type of handover from emergency call to satellite messaging.
String EXTRA_EMERGENCY_CALL_TO_SATELLITE_LAUNCH_INTENT Extra key used with the EVENT_DISPLAY_EMERGENCY_MESSAGE for a PendingIntent which will be launched by the Dialer app.
String EXTRA_HIDE_PUBLIC_SETTINGS The boolean value indicating whether the voicemail settings activity launched by ACTION_CONFIGURE_VOICEMAIL should hide settings accessible through public API.
String EXTRA_INCOMING_NUMBER This constant was deprecated in API level 29. Companion apps for wearable devices should use the InCallService API to retrieve the phone number for calls instead. Apps performing call screening should use the CallScreeningService API instead.
String EXTRA_IS_REFRESH Boolean value representing whether the TelephonyManager.ACTION_SHOW_VOICEMAIL_NOTIFICATION is new or a refresh of an existing notification.
String EXTRA_LAST_KNOWN_NETWORK_COUNTRY The extra used with an ACTION_NETWORK_COUNTRY_CHANGED to specify the last known the country code in ISO-3166-1 alpha-2 format.
String EXTRA_LAUNCH_VOICEMAIL_SETTINGS_INTENT The intent to launch voicemail settings.
String EXTRA_NETWORK_COUNTRY The extra used with an ACTION_NETWORK_COUNTRY_CHANGED to specify the the country code in ISO-3166-1 alpha-2 format.
String EXTRA_NOTIFICATION_COUNT The number of voice messages associated with the notification.
String EXTRA_PCO_ID An integer extra indicating the ID for the PCO data.
String EXTRA_PCO_VALUE A byte array extra containing PCO data read from the modem.
String EXTRA_PHONE_ACCOUNT_HANDLE The extra used with an ACTION_CONFIGURE_VOICEMAIL andACTION_SHOW_VOICEMAIL_NOTIFICATION Intent to specify thePhoneAccountHandle the configuration or notification is for.
String EXTRA_REDIRECTION_URL String extra containing the redirection URL sent withACTION_CARRIER_SIGNAL_REDIRECTED.
String EXTRA_SPECIFIC_CARRIER_ID An int extra used with ACTION_SUBSCRIPTION_SPECIFIC_CARRIER_IDENTITY_CHANGED which indicates the updated specific carrier id returned byTelephonyManager.getSimSpecificCarrierId().
String EXTRA_SPECIFIC_CARRIER_NAME An string extra used with ACTION_SUBSCRIPTION_SPECIFIC_CARRIER_IDENTITY_CHANGED which indicates the updated specific carrier name returned byTelephonyManager.getSimSpecificCarrierIdName().
String EXTRA_STATE The lookup key used with the ACTION_PHONE_STATE_CHANGED broadcast for a String containing the new call state.
String EXTRA_SUBSCRIPTION_ID An int extra used with ACTION_SUBSCRIPTION_CARRIER_IDENTITY_CHANGED to indicate the subscription which has changed; or in general whenever a subscription ID needs specified.
String EXTRA_VOICEMAIL_NUMBER The voicemail number.
int INCLUDE_LOCATION_DATA_COARSE Include coarse location data.
int INCLUDE_LOCATION_DATA_FINE Include fine location data.
int INCLUDE_LOCATION_DATA_NONE Specifies to not include any location related data.
String METADATA_HIDE_VOICEMAIL_SETTINGS_MENU A boolean meta-data value indicating whether the voicemail settings should be hidden in the call settings page launched byTelecomManager.ACTION_SHOW_CALL_SETTINGS.
int MULTISIM_ALLOWED The usage of multiple SIM cards at the same time to register on the network (e.g. Dual Standby or Dual Active) is supported.
int MULTISIM_NOT_SUPPORTED_BY_CARRIER The usage of multiple SIM cards at the same time to register on the network (e.g. Dual Standby or Dual Active) is supported by the hardware, but restricted by the carrier.
int MULTISIM_NOT_SUPPORTED_BY_HARDWARE The usage of multiple SIM cards at the same time to register on the network (e.g. Dual Standby or Dual Active) is not supported by the hardware.
int NETWORK_SELECTION_MODE_AUTO
int NETWORK_SELECTION_MODE_MANUAL
int NETWORK_SELECTION_MODE_UNKNOWN
int NETWORK_TYPE_1xRTT This constant was deprecated in API level 36. Legacy CDMA is unsupported.
long NETWORK_TYPE_BITMASK_1xRTT network type bitmask indicating the support of radio tech 1xRTT.
long NETWORK_TYPE_BITMASK_CDMA This constant was deprecated in API level 36. Legacy CDMA is unsupported.
long NETWORK_TYPE_BITMASK_EDGE network type bitmask indicating the support of radio tech EDGE.
long NETWORK_TYPE_BITMASK_EHRPD This constant was deprecated in API level 36. Legacy CDMA is unsupported.
long NETWORK_TYPE_BITMASK_EVDO_0 network type bitmask indicating the support of radio tech EVDO 0.
long NETWORK_TYPE_BITMASK_EVDO_A network type bitmask indicating the support of radio tech EVDO A.
long NETWORK_TYPE_BITMASK_EVDO_B network type bitmask indicating the support of radio tech EVDO B.
long NETWORK_TYPE_BITMASK_GPRS network type bitmask indicating the support of radio tech GPRS.
long NETWORK_TYPE_BITMASK_GSM network type bitmask indicating the support of radio tech GSM.
long NETWORK_TYPE_BITMASK_HSDPA network type bitmask indicating the support of radio tech HSDPA.
long NETWORK_TYPE_BITMASK_HSPA network type bitmask indicating the support of radio tech HSPA.
long NETWORK_TYPE_BITMASK_HSPAP network type bitmask indicating the support of radio tech HSPAP.
long NETWORK_TYPE_BITMASK_HSUPA network type bitmask indicating the support of radio tech HSUPA.
long NETWORK_TYPE_BITMASK_IWLAN network type bitmask indicating the support of radio tech IWLAN.
long NETWORK_TYPE_BITMASK_LTE network type bitmask indicating the support of radio tech LTE.
long NETWORK_TYPE_BITMASK_LTE_CA This constant was deprecated in API level 34. Please use NETWORK_TYPE_BITMASK_LTE instead. Deprecated in Android U.
long NETWORK_TYPE_BITMASK_NR network type bitmask indicating the support of radio tech NR(New Radio) 5G.
long NETWORK_TYPE_BITMASK_TD_SCDMA network type bitmask indicating the support of radio tech TD_SCDMA.
long NETWORK_TYPE_BITMASK_UMTS network type bitmask indicating the support of radio tech UMTS.
long NETWORK_TYPE_BITMASK_UNKNOWN network type bitmask unknown.
int NETWORK_TYPE_CDMA This constant was deprecated in API level 36. Legacy CDMA is unsupported.
int NETWORK_TYPE_EDGE Current network is EDGE
int NETWORK_TYPE_EHRPD This constant was deprecated in API level 36. Legacy CDMA is unsupported.
int NETWORK_TYPE_EVDO_0 This constant was deprecated in API level 36. Legacy CDMA is unsupported.
int NETWORK_TYPE_EVDO_A This constant was deprecated in API level 36. Legacy CDMA is unsupported.
int NETWORK_TYPE_EVDO_B This constant was deprecated in API level 36. Legacy CDMA is unsupported.
int NETWORK_TYPE_GPRS Current network is GPRS
int NETWORK_TYPE_GSM Current network is GSM
int NETWORK_TYPE_HSDPA Current network is HSDPA
int NETWORK_TYPE_HSPA Current network is HSPA
int NETWORK_TYPE_HSPAP Current network is HSPA+
int NETWORK_TYPE_HSUPA Current network is HSUPA
int NETWORK_TYPE_IDEN This constant was deprecated in API level 34. Legacy network type no longer being used starting in Android U.
int NETWORK_TYPE_IWLAN Current network is IWLAN
int NETWORK_TYPE_LTE Current network is LTE
int NETWORK_TYPE_NR Current network is NR (New Radio) 5G.
int NETWORK_TYPE_TD_SCDMA Current network is TD_SCDMA
int NETWORK_TYPE_UMTS Current network is UMTS
int NETWORK_TYPE_UNKNOWN Network type is unknown
int PHONE_TYPE_CDMA This constant was deprecated in API level 36. Legacy CDMA is unsupported.
int PHONE_TYPE_GSM Phone radio is GSM.
int PHONE_TYPE_NONE No phone radio.
int PHONE_TYPE_SIP Phone is via SIP.
int PREMIUM_CAPABILITY_PRIORITIZE_LATENCY A premium capability that boosts the network to allow for real-time interactive traffic by prioritizing low latency communication.
int PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_IN_PROGRESS Purchase premium capability failed because a request was already made and is in progress.
int PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_PURCHASED Purchase premium capability failed because it is already purchased and available.
int PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_DISABLED Purchase premium capability failed because the carrier disabled or does not support the capability, as specified inCarrierConfigManager.KEY_SUPPORTED_PREMIUM_CAPABILITIES_INT_ARRAY.
int PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_ERROR Purchase premium capability failed because the carrier app did not indicate success.
int PURCHASE_PREMIUM_CAPABILITY_RESULT_ENTITLEMENT_CHECK_FAILED Purchase premium capability failed because the entitlement check failed.
int PURCHASE_PREMIUM_CAPABILITY_RESULT_FEATURE_NOT_SUPPORTED Purchase premium capability failed because the device does not support the feature.
int PURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_NOT_AVAILABLE Purchase premium capability failed because the network is not available.
int PURCHASE_PREMIUM_CAPABILITY_RESULT_NOT_DEFAULT_DATA_SUBSCRIPTION Purchase premium capability failed because the request was not made on the default data subscription, indicated by SubscriptionManager.getDefaultDataSubscriptionId().
int PURCHASE_PREMIUM_CAPABILITY_RESULT_NOT_FOREGROUND Purchase premium capability failed because the requesting application is not in the foreground.
int PURCHASE_PREMIUM_CAPABILITY_RESULT_PENDING_NETWORK_SETUP Purchase premium capability was successful and is waiting for the network to setup the slicing configuration.
int PURCHASE_PREMIUM_CAPABILITY_RESULT_REQUEST_FAILED Purchase premium capability failed because the telephony service is unavailable or there was an error in the phone process.
int PURCHASE_PREMIUM_CAPABILITY_RESULT_SUCCESS Purchase premium capability request was successful.
int PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED Purchase premium capability failed because the request is throttled.
int PURCHASE_PREMIUM_CAPABILITY_RESULT_TIMEOUT Purchase premium capability failed because we did not receive a response from the user for the performance boost notification within the time specified byCarrierConfigManager.KEY_PREMIUM_CAPABILITY_NOTIFICATION_DISPLAY_TIMEOUT_MILLIS_LONG.
int PURCHASE_PREMIUM_CAPABILITY_RESULT_USER_CANCELED Purchase premium capability failed because the user canceled the operation.
int PURCHASE_PREMIUM_CAPABILITY_RESULT_USER_DISABLED Purchase premium capability failed because the user disabled the feature.
int SET_OPPORTUNISTIC_SUB_INACTIVE_SUBSCRIPTION The subscription is not valid.
int SET_OPPORTUNISTIC_SUB_NO_OPPORTUNISTIC_SUB_AVAILABLE The subscription is not valid.
int SET_OPPORTUNISTIC_SUB_REMOTE_SERVICE_EXCEPTION Subscription service happened remote exception.
int SET_OPPORTUNISTIC_SUB_SUCCESS No error.
int SET_OPPORTUNISTIC_SUB_VALIDATION_FAILED Validation failed when trying to switch to preferred subscription.
int SIM_STATE_ABSENT SIM card state: no SIM card is available in the device
int SIM_STATE_CARD_IO_ERROR SIM card state: SIM Card Error, present but faulty
int SIM_STATE_CARD_RESTRICTED SIM card state: SIM Card restricted, present but not usable due to carrier restrictions.
int SIM_STATE_NETWORK_LOCKED SIM card state: Locked: requires a network PIN to unlock
int SIM_STATE_NOT_READY SIM card state: SIM Card is NOT READY
int SIM_STATE_PERM_DISABLED SIM card state: SIM Card Error, permanently disabled
int SIM_STATE_PIN_REQUIRED SIM card state: Locked: requires the user's SIM PIN to unlock
int SIM_STATE_PUK_REQUIRED SIM card state: Locked: requires the user's SIM PUK to unlock
int SIM_STATE_READY SIM card state: Ready
int SIM_STATE_UNKNOWN SIM card state: Unknown.
int TTY_MODE_FULL TTY (teletypewriter) mode is on.
int TTY_MODE_HCO TTY (teletypewriter) mode is in hearing carryover mode (HCO).
int TTY_MODE_OFF TTY (teletypewriter) mode is off.
int TTY_MODE_VCO TTY (teletypewriter) mode is in voice carryover mode (VCO).
int UNINITIALIZED_CARD_ID A UICC card identifier used before the UICC card is loaded.
int UNKNOWN_CARRIER_ID An unknown carrier id.
int UNSUPPORTED_CARD_ID A UICC card identifier used if the device does not support the operation.
int UPDATE_AVAILABLE_NETWORKS_ABORTED The request is aborted.
int UPDATE_AVAILABLE_NETWORKS_DISABLE_MODEM_FAIL Disable modem fail.
int UPDATE_AVAILABLE_NETWORKS_ENABLE_MODEM_FAIL Enable modem fail.
int UPDATE_AVAILABLE_NETWORKS_INVALID_ARGUMENTS The parameter passed in is invalid.
int UPDATE_AVAILABLE_NETWORKS_MULTIPLE_NETWORKS_NOT_SUPPORTED Carrier app does not support multiple available networks.
int UPDATE_AVAILABLE_NETWORKS_NO_CARRIER_PRIVILEGE No carrier privilege.
int UPDATE_AVAILABLE_NETWORKS_NO_OPPORTUNISTIC_SUB_AVAILABLE The subscription is not valid.
int UPDATE_AVAILABLE_NETWORKS_REMOTE_SERVICE_EXCEPTION There is no OpportunisticNetworkService.
int UPDATE_AVAILABLE_NETWORKS_SERVICE_IS_DISABLED OpportunisticNetworkService is disabled.
int UPDATE_AVAILABLE_NETWORKS_SUCCESS No error.
int UPDATE_AVAILABLE_NETWORKS_UNKNOWN_FAILURE There is a unknown failure happened.
int USSD_ERROR_SERVICE_UNAVAIL Failure code returned when a USSD request has failed to execute because the Telephony service is unavailable.
int USSD_RETURN_FAILURE Failed code returned when the mobile network has failed to complete a USSD request.
String VVM_TYPE_CVVM A flavor of OMTP protocol with a different mobile originated (MO) format
String VVM_TYPE_OMTP The OMTP protocol.
Fields
public static finalString EXTRA_STATE_IDLE Value used with EXTRA_STATE corresponding toCALL_STATE_IDLE.
public static finalString EXTRA_STATE_OFFHOOK Value used with EXTRA_STATE corresponding toCALL_STATE_OFFHOOK.
public static finalString EXTRA_STATE_RINGING Value used with EXTRA_STATE corresponding toCALL_STATE_RINGING.
Public methods
boolean canChangeDtmfToneLength() Whether the device supports configuring the DTMF tone length.
void clearSignalStrengthUpdateRequest(SignalStrengthUpdateRequest request) Clear a SignalStrengthUpdateRequest from the system.
TelephonyManager createForPhoneAccountHandle(PhoneAccountHandle phoneAccountHandle) Create a new TelephonyManager object pinned to the subscription ID associated with the given phone account.
TelephonyManager createForSubscriptionId(int subId) Create a new TelephonyManager object pinned to the given subscription ID.
boolean doesSwitchMultiSimConfigTriggerReboot() Get whether making changes to modem configurations by switchMultiSimConfig(int) will trigger device reboot.
int getActiveModemCount() Returns the number of logical modems currently configured to be activated.
List<CellInfo> getAllCellInfo() Requests all available cell information from all radios on the device including the camped/registered, serving, and neighboring cells.
long getAllowedNetworkTypesForReason(int reason) Get the allowed network types for certain reason.
int getCallComposerStatus() Get the user-set status for enriched calling with call composer.
int getCallState() This method was deprecated in API level 31. Use getCallStateForSubscription() to retrieve the call state for a specific telephony subscription (which allows carrier privileged apps),TelephonyCallback.CallStateListener for real-time call state updates, orTelecomManager.isInCall(), which supplies an aggregate "in call" state for the entire device.
int getCallStateForSubscription() Retrieve the call state for a specific subscription that was specified when this TelephonyManager instance was created.
int getCardIdForDefaultEuicc() Get the card ID of the default eUICC card.
PersistableBundle getCarrierConfig() Returns the carrier config of the subscription ID pinned to the TelephonyManager.
int getCarrierIdFromSimMccMnc() Returns carrier id based on sim MCCMNC (returned by getSimOperator()) only.
void getCarrierRestrictionStatus(Executor executor, Consumer<Integer> resultListener) Get the carrier restriction status of the device.
CellLocation getCellLocation() This method was deprecated in API level 26. use getAllCellInfo() instead, which returns a superset of this API.
int getCurrentTtyMode() Returns the current TTY mode of the device.
int getDataActivity() Returns a constant indicating the type of activity on a data connection (cellular).
int getDataNetworkType() Returns a constant indicating the radio technology (network type) currently in use on the device for data transmission.
int getDataState() Returns a constant indicating the current data connection state (cellular).
String getDeviceId() This method was deprecated in API level 26. Use getImei() which returns IMEI for GSM or getMeid() which returns MEID for CDMA.
String getDeviceId(int slotIndex) This method was deprecated in API level 26. Use getImei() which returns IMEI for GSM or getMeid() which returns MEID for CDMA.
String getDeviceSoftwareVersion() Returns the software version number for the device, for example, the IMEI/SV for GSM phones.
Map<Integer, List<EmergencyNumber>> getEmergencyNumberList() Get the emergency number list based on current locale, sim, default, modem and network.
Map<Integer, List<EmergencyNumber>> getEmergencyNumberList(int categories) Get the per-category emergency number list based on current locale, sim, default, modem and network.
List<String> getEquivalentHomePlmns() Returns a list of the equivalent home PLMNs (EF_EHPLMN) from the USIM app.
String[] getForbiddenPlmns() Returns an array of Forbidden PLMNs from the USIM App Returns null if the query fails.
String getGroupIdLevel1() Returns the Group Identifier Level1 for a GSM phone.
String getIccAuthentication(int appType, int authType, String data) Returns the response of authentication for the default subscription.
String getImei(int slotIndex) Returns the IMEI (International Mobile Equipment Identity).
String getImei() Returns the IMEI (International Mobile Equipment Identity).
String getLine1Number() This method was deprecated in API level 33. use SubscriptionManager.getPhoneNumber(int) instead.
String getManualNetworkSelectionPlmn() Get the PLMN chosen for Manual Network Selection if active.
String getManufacturerCode(int slotIndex) This method was deprecated in API level 36. Legacy CDMA is unsupported.
String getManufacturerCode() This method was deprecated in API level 36. Legacy CDMA is unsupported.
static long getMaximumCallComposerPictureSize() Indicates the maximum size of the call composure picture.
String getMeid() This method was deprecated in API level 36. Legacy CDMA is unsupported.
String getMeid(int slotIndex) This method was deprecated in API level 36. Legacy CDMA is unsupported.
String getMmsUAProfUrl() Returns the MMS user agent profile URL.
String getMmsUserAgent() Returns the MMS user agent.
String getNai() Returns the Network Access Identifier (NAI).
String getNetworkCountryIso() Returns the ISO-3166-1 alpha-2 country code equivalent of the MCC (Mobile Country Code) of the current registered operator or the cell nearby, if available.
String getNetworkCountryIso(int slotIndex) Returns the ISO-3166-1 alpha-2 country code equivalent of the MCC (Mobile Country Code) of the current registered operator or the cell nearby, if available.
String getNetworkOperator() Returns the numeric name (MCC+MNC) of current registered operator.
String getNetworkOperatorName() Returns the alphabetic name of current registered operator.
int getNetworkSelectionMode() Get the network selection mode.
void getNetworkSlicingConfiguration(Executor executor, OutcomeReceiver<NetworkSlicingConfig, TelephonyManager.NetworkSlicingException> callback) Request to get the current slicing configuration including URSP rules and NSSAIs (configured, allowed and rejected).
String getNetworkSpecifier() Returns the network specifier of the subscription ID pinned to the TelephonyManager.
int getNetworkType() This method was deprecated in API level 30. use getDataNetworkType()
PhoneAccountHandle getPhoneAccountHandle() Determines the PhoneAccountHandle associated with this TelephonyManager.
int getPhoneCount() This method was deprecated in API level 30. Use getActiveModemCount() instead.
int getPhoneType() Returns a constant indicating the device phone type.
int getPreferredOpportunisticDataSubscription() Get preferred opportunistic data subscription IdRequires that the calling app has carrier privileges (see hasCarrierPrivileges()), or has either READ_PRIVILEGED_PHONE_STATE or READ_PHONE_STATE permission.
String getPrimaryImei() Returns the primary IMEI (International Mobile Equipment Identity) of the device as mentioned in GSMA TS.37.
ServiceState getServiceState(int includeLocationData) Returns the current ServiceState information.
ServiceState getServiceState() Returns the current ServiceState information.
ServiceState getServiceStateForSlot(int slotIndex) Returns the service state information on specified SIM slot.
SignalStrength getSignalStrength() Get the most recently available signal strength information.
int getSimCarrierId() Returns carrier id of the current subscription.
CharSequence getSimCarrierIdName() Returns carrier id name of the current subscription.
String getSimCountryIso() Returns the ISO-3166-1 alpha-2 country code equivalent for the SIM provider's country code.
String getSimOperator() Returns the MCC+MNC (mobile country code + mobile network code) of the provider of the SIM.
String getSimOperatorName() Returns the Service Provider Name (SPN).
String getSimSerialNumber() Returns the serial number of the SIM, if applicable.
int getSimSpecificCarrierId() Returns fine-grained carrier ID of the current subscription.
CharSequence getSimSpecificCarrierIdName() Similar like getSimCarrierIdName(), returns user-facing name of the specific carrier id returned by getSimSpecificCarrierId().
int getSimState() Returns a constant indicating the state of the default SIM card.
int getSimState(int slotIndex) Returns a constant indicating the state of the device SIM card in a logical slot.
String getSubscriberId() Returns the unique subscriber ID, for example, the IMSI for a GSM phone.
int getSubscriptionId(PhoneAccountHandle phoneAccountHandle) Returns the subscription ID for the given phone account handle.
int getSubscriptionId() Return an appropriate subscription ID for any situation.
int getSupportedModemCount() Return how many logical modem can be potentially active simultaneously, in terms of hardware capability.
long getSupportedRadioAccessFamily() Requires android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE.
String getTypeAllocationCode() Returns the Type Allocation Code from the IMEI.
String getTypeAllocationCode(int slotIndex) Returns the Type Allocation Code from the IMEI.
List<UiccCardInfo> getUiccCardsInfo() Gets information about currently inserted UICCs (Universal Integrated Circuit Cards) and eUICCs (embedded UICCs).
String getVisualVoicemailPackageName() Returns the package responsible of processing visual voicemail for the subscription ID pinned to the TelephonyManager.
String getVoiceMailAlphaTag() Retrieves the alphabetic identifier associated with the voice mail number.
String getVoiceMailNumber() Returns the voice mail number.
int getVoiceNetworkType() Returns the NETWORK_TYPE_xxxx for voiceRequires Permission: READ_PHONE_STATE or READ_BASIC_PHONE_STATE or that the calling app has carrier privileges (see hasCarrierPrivileges()).
Uri getVoicemailRingtoneUri(PhoneAccountHandle accountHandle) Returns the URI for the per-account voicemail ringtone set in Phone settings.
boolean hasCarrierPrivileges() Has the calling application been granted carrier privileges by the carrier.
boolean hasIccCard() This API is used to check if there is an ICC card present in the device.
boolean iccCloseLogicalChannel(int channel) Closes a previously opened logical channel to the ICC card.
byte[] iccExchangeSimIO(int fileID, int command, int p1, int p2, int p3, String filePath) Returns the response APDU for a command APDU sent through SIM_IO.
IccOpenLogicalChannelResponse iccOpenLogicalChannel(String AID, int p2) Opens a logical channel to the ICC card.
IccOpenLogicalChannelResponse iccOpenLogicalChannel(String AID) This method was deprecated in API level 26. Replaced by iccOpenLogicalChannel(String,int)
String iccTransmitApduBasicChannel(int cla, int instruction, int p1, int p2, int p3, String data) Transmit an APDU to the ICC card over the basic channel.
String iccTransmitApduLogicalChannel(int channel, int cla, int instruction, int p1, int p2, int p3, String data) Transmit an APDU to the ICC card over a logical channel.
boolean isConcurrentVoiceAndDataSupported() Whether the device is currently on a technology (e.g. UMTS or LTE) which can support voice and data simultaneously.
boolean isDataCapable()
boolean isDataConnectionAllowed() Checks whether cellular data connection is allowed in the device.
boolean isDataEnabled() Returns whether mobile data is enabled or not per user setting.
boolean isDataEnabledForReason(int reason) Return whether data is enabled for certain reason .
boolean isDataRoamingEnabled() Returns whether mobile data roaming is enabled on the subscription.
boolean isDeviceSmsCapable()
boolean isDeviceVoiceCapable()
boolean isEmergencyNumber(String number) Identifies if the supplied phone number is an emergency number that matches a known emergency number based on current locale, SIM card(s), Android database, modem, network, or defaults.
boolean isHearingAidCompatibilitySupported() Whether the phone supports hearing aid compatibility.
boolean isManualNetworkSelectionAllowed() Checks if manual network selection is allowed.
boolean isModemEnabledForSlot(int slotIndex) Indicates whether or not there is a modem stack enabled for the given SIM slot.
int isMultiSimSupported() Returns if the usage of multiple SIM cards at the same time to register on the network (e.g. Dual Standby or Dual Active) is supported by the device and by the carrier.
boolean isNetworkRoaming() Returns true if the device is considered roaming on the current network, for GSM purposes.
boolean isPremiumCapabilityAvailableForPurchase(int capability) Check whether the given premium capability is available for purchase from the carrier.
boolean isRadioInterfaceCapabilitySupported(String capability) Whether the device supports a given capability on the radio interface.
boolean isRttSupported() Determines whether the device currently supports RTT (Real-time text).
boolean isSmsCapable() This method was deprecated in API level 35. Replaced by isDeviceSmsCapable(). Starting from Android 15, SMS capability may also be overridden by carriers for a given subscription. For SMS capable device (when isDeviceSmsCapable() return true), caller should check for subscription-level SMS capability as well. See isDeviceSmsCapable() for details.
boolean isTtyModeSupported() This method was deprecated in API level 28. Use TelecomManager.isTtySupported() instead Whether the phone supports TTY mode.
boolean isVoiceCapable() This method was deprecated in API level 35. Replaced by isDeviceVoiceCapable(). Starting from Android 15, voice capability may also be overridden by carriers for a given subscription. For voice capable device (when isDeviceVoiceCapable() return true), caller should check for subscription-level voice capability as well. See isDeviceVoiceCapable() for details.
boolean isVoicemailVibrationEnabled(PhoneAccountHandle accountHandle) Returns whether vibration is set for voicemail notification in Phone settings.
boolean isWorldPhone() Whether the device is a world phone.
void listen(PhoneStateListener listener, int events) This method was deprecated in API level 31. Use registerTelephonyCallback(Executor,TelephonyCallback).
void purchasePremiumCapability(int capability, Executor executor, Consumer<Integer> callback) Purchase the given premium capability from the carrier.
void rebootModem() Reboot and re-initialize the cellular modem and related subsystems below the OS.
void registerTelephonyCallback(Executor executor, TelephonyCallback callback) Registers a callback object to receive notification of changes in specified telephony states.
void registerTelephonyCallback(int includeLocationData, Executor executor, TelephonyCallback callback) Registers a callback object to receive notification of changes in specified telephony states.
void requestCellInfoUpdate(Executor executor, TelephonyManager.CellInfoCallback callback) Requests all available cell information from the current subscription for observed camped/registered, serving, and neighboring cells.
NetworkScan requestNetworkScan(NetworkScanRequest request, Executor executor, TelephonyScanManager.NetworkScanCallback callback) Request a network scan.
NetworkScan requestNetworkScan(int includeLocationData, NetworkScanRequest request, Executor executor, TelephonyScanManager.NetworkScanCallback callback) Request a network scan.
void sendDialerSpecialCode(String inputCode) Send the special dialer code.
String sendEnvelopeWithStatus(String content) Send ENVELOPE to the SIM and return the response.
void sendUssdRequest(String ussdRequest, TelephonyManager.UssdResponseCallback callback, Handler handler) Sends an Unstructured Supplementary Service Data (USSD) request to the mobile network and informs the caller of the response via the supplied callback.
void sendVisualVoicemailSms(String number, int port, String text, PendingIntent sentIntent) Send a visual voicemail SMS.
void setAllowedNetworkTypesForReason(int reason, long allowedNetworkTypes) Set the allowed network types of the device and provide the reason triggering the allowed network change.
void setCallComposerStatus(int status) Set the user-set status for enriched calling with call composer.
void setDataEnabled(boolean enable) This method was deprecated in API level 31. use setDataEnabledForReason with reason DATA_ENABLED_REASON_USER instead.
void setDataEnabledForReason(int reason, boolean enabled) Control of data connection and provide the reason triggering the data connection control.
int setForbiddenPlmns(List<String> fplmns) Replace the contents of the forbidden PLMN SIM file with the provided values.
boolean setLine1NumberForDisplay(String alphaTag, String number) This method was deprecated in API level 33. use SubscriptionManager.setCarrierPhoneNumber(int,String) instead.
void setNetworkSelectionModeAutomatic() Sets the network selection mode to automatic.
boolean setNetworkSelectionModeManual(String operatorNumeric, boolean persistSelection, int ran) Ask the radio to connect to the input network and change selection mode to manual.
boolean setNetworkSelectionModeManual(String operatorNumeric, boolean persistSelection) Ask the radio to connect to the input network and change selection mode to manual.
boolean setOperatorBrandOverride(String brand) Override the branding for the current ICCID.
boolean setPreferredNetworkTypeToGlobal() Set the preferred network type to global mode which includes NR, LTE, CDMA, EvDo and GSM/WCDMA.
void setPreferredOpportunisticDataSubscription(int subId, boolean needValidation, Executor executor, Consumer<Integer> callback) Set preferred opportunistic data subscription id.
void setSignalStrengthUpdateRequest(SignalStrengthUpdateRequest request) Set a SignalStrengthUpdateRequest to receive notification when signal quality measurements breach the specified thresholds.
void setVisualVoicemailSmsFilterSettings(VisualVoicemailSmsFilterSettings settings) Set the visual voicemail SMS filter settings for the subscription ID pinned to the TelephonyManager.
boolean setVoiceMailNumber(String alphaTag, String number) Sets the voice mail number.
void setVoicemailRingtoneUri(PhoneAccountHandle phoneAccountHandle, Uri uri) This method was deprecated in API level 28. Use Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS instead.
void setVoicemailVibrationEnabled(PhoneAccountHandle phoneAccountHandle, boolean enabled) This method was deprecated in API level 28. Use Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS instead.
void switchMultiSimConfig(int numOfSims) Switch configs to enable multi-sim or switch back to single-simRequires Permission:MODIFY_PHONE_STATE or that the calling app has carrier privileges (see hasCarrierPrivileges()).
void unregisterTelephonyCallback(TelephonyCallback callback) Unregister an existing TelephonyCallback.
void updateAvailableNetworks(List<AvailableNetworkInfo> availableNetworks, Executor executor, Consumer<Integer> callback) Update availability of a list of networks in the current location.
void uploadCallComposerPicture(InputStream pictureToUpload, String contentType, Executor executor, OutcomeReceiver<ParcelUuid, TelephonyManager.CallComposerException> callback) Uploads a picture to the carrier network for use with call composer.
void uploadCallComposerPicture(Path pictureToUpload, String contentType, Executor executor, OutcomeReceiver<ParcelUuid, TelephonyManager.CallComposerException> callback) Uploads a picture to the carrier network for use with call composer.
Inherited methods
From class java.lang.Object Object clone() Creates and returns a copy of this object. boolean equals(Object obj) Indicates whether some other object is "equal to" this one. void finalize() Called by the garbage collector on an object when garbage collection determines that there are no more references to the object. finalClass<?> getClass() Returns the runtime class of this Object. int hashCode() Returns a hash code value for the object. final void notify() Wakes up a single thread that is waiting on this object's monitor. final void notifyAll() Wakes up all threads that are waiting on this object's monitor. String toString() Returns a string representation of the object. final void wait(long timeoutMillis, int nanos) Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed. final void wait(long timeoutMillis) Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed. final void wait() Causes the current thread to wait until it is awakened, typically by being notified or interrupted.

Constants

ACTION_CARRIER_MESSAGING_CLIENT_SERVICE

public static final String ACTION_CARRIER_MESSAGING_CLIENT_SERVICE

A service action that identifies a [CarrierMessagingClientService](/reference/android/service/carrier/CarrierMessagingClientService) subclass in the AndroidManifest.xml.

See [CarrierMessagingClientService](/reference/android/service/carrier/CarrierMessagingClientService) for the details.

Constant Value: "android.telephony.action.CARRIER_MESSAGING_CLIENT_SERVICE"

ACTION_CARRIER_SIGNAL_DEFAULT_NETWORK_AVAILABLE

public static final String ACTION_CARRIER_SIGNAL_DEFAULT_NETWORK_AVAILABLE

Broadcast action sent when the availability of the system default network changes.

See also:

Constant Value: "android.telephony.action.CARRIER_SIGNAL_DEFAULT_NETWORK_AVAILABLE"

ACTION_CARRIER_SIGNAL_PCO_VALUE

public static final String ACTION_CARRIER_SIGNAL_PCO_VALUE

Broadcast action sent when a PCO value becomes available from the modem. This action is intended for sim/account status checks and only sent to the carrier apps specified in the carrier config for the subscription ID that's attached to this intent. The intent will have the following extra values:

An integer indicating the apn type.

An integer indicating the protocol of the apn connection

An integer indicating the PCO id for the data.

A byte array of PCO data read from modem.

The subscription ID for which the PCO info was received.

This is a protected intent that can only be sent by the system.

Constant Value: "android.telephony.action.CARRIER_SIGNAL_PCO_VALUE"

ACTION_CARRIER_SIGNAL_REDIRECTED

public static final String ACTION_CARRIER_SIGNAL_REDIRECTED

Broadcast action sent when a data connection is redirected with validation failure. This action is intended for sim/account status checks and only sent to the carrier apps specified in the carrier config for the subscription ID that's attached to this intent. The intent will have the following extra values:

An integer indicating the apn type.

A string indicating the redirection url

The subscription ID on which the validation failure happened.

This is a protected intent that can only be sent by the system.

Constant Value: "android.telephony.action.CARRIER_SIGNAL_REDIRECTED"

ACTION_CARRIER_SIGNAL_REQUEST_NETWORK_FAILED

public static final String ACTION_CARRIER_SIGNAL_REQUEST_NETWORK_FAILED

Broadcast action sent when a data connection setup fails. This action is intended for sim/account status checks and only sent to the carrier apps specified in the carrier config for the subscription ID that's attached to this intent. The intent will have the following extra values:

An integer indicating the apn type.

A integer indicating the data fail cause.

The subscription ID on which the data setup failure happened.

This is a protected intent that can only be sent by the system.

Constant Value: "android.telephony.action.CARRIER_SIGNAL_REQUEST_NETWORK_FAILED"

ACTION_CARRIER_SIGNAL_RESET

public static final String ACTION_CARRIER_SIGNAL_RESET

Broadcast action sent when carrier apps should reset their internal state. Sent when certain events such as turning on/off mobile data, removing the SIM, etc. require carrier apps to reset their state. This action is intended to signal carrier apps to perform cleanup operations. It is only sent to the carrier apps specified in the carrier config for the subscription ID attached to this intent. The intent will have the following extra values:

The subscription ID for which state should be reset.

This is a protected intent that can only be sent by the system.

Constant Value: "android.telephony.action.CARRIER_SIGNAL_RESET"

ACTION_CONFIGURE_VOICEMAIL

public static final String ACTION_CONFIGURE_VOICEMAIL

Open the voicemail settings activity to make changes to voicemail configuration.

The [EXTRA_PHONE_ACCOUNT_HANDLE](/reference/android/telephony/TelephonyManager#EXTRA%5FPHONE%5FACCOUNT%5FHANDLE) extra indicates which [PhoneAccountHandle](/reference/android/telecom/PhoneAccountHandle) to configure voicemail. The [EXTRA_HIDE_PUBLIC_SETTINGS](/reference/android/telephony/TelephonyManager#EXTRA%5FHIDE%5FPUBLIC%5FSETTINGS) hides settings the dialer will modify through public API if set.

Constant Value: "android.telephony.action.CONFIGURE_VOICEMAIL"

ACTION_MULTI_SIM_CONFIG_CHANGED

public static final String ACTION_MULTI_SIM_CONFIG_CHANGED

Broadcast action to be received by Broadcast receivers. Indicates multi-SIM configuration is changed. For example, it changed from single SIM capable to dual-SIM capable (DSDS or DSDA) or triple-SIM mode. It doesn't indicate how many subscriptions are actually active, or which states SIMs are, or that all steps during multi-SIM change are done. To know those information you still need to listen to SIM_STATE changes or active subscription changes. See extra of [EXTRA_ACTIVE_SIM_SUPPORTED_COUNT](/reference/android/telephony/TelephonyManager#EXTRA%5FACTIVE%5FSIM%5FSUPPORTED%5FCOUNT) for updated value.

Constant Value: "android.telephony.action.MULTI_SIM_CONFIG_CHANGED"

ACTION_NETWORK_COUNTRY_CHANGED

public static final String ACTION_NETWORK_COUNTRY_CHANGED

Broadcast intent action for network country code changes.

The [EXTRA_NETWORK_COUNTRY](/reference/android/telephony/TelephonyManager#EXTRA%5FNETWORK%5FCOUNTRY) extra indicates the country code of the current network returned by [getNetworkCountryIso()](/reference/android/telephony/TelephonyManager#getNetworkCountryIso%28%29).

There may be a delay of several minutes before reporting that no country is detected.

Constant Value: "android.telephony.action.NETWORK_COUNTRY_CHANGED"

ACTION_RESET_MOBILE_NETWORK_SETTINGS

public static final String ACTION_RESET_MOBILE_NETWORK_SETTINGS

Activity action: Show setting to reset mobile networks.

On devices with a settings activity to reset mobile networks, the activity should be launched without additional permissions.

On some devices, this settings activity may not exist. Callers should ensure that this case is appropriately handled.

Constant Value: "android.telephony.action.RESET_MOBILE_NETWORK_SETTINGS"

ACTION_RESPOND_VIA_MESSAGE

public static final String ACTION_RESPOND_VIA_MESSAGE

The Phone app sends this intent when a user opts to respond-via-message during an incoming call. By default, the device's default SMS app consumes this message and sends a text message to the caller. A third party app can also provide this functionality by consuming this Intent with a [Service](/reference/android/app/Service) and sending the message using its own messaging system.

The intent contains a URI (available from [Intent.getData()](/reference/android/content/Intent#getData%28%29)) describing the recipient, using either the sms:, smsto:, mms:, or mmsto: URI schema. Each of these URI schema carry the recipient information the same way: the path part of the URI contains the recipient's phone number or a comma-separated set of phone numbers if there are multiple recipients. For example, smsto:2065551234.

The intent may also contain extras for the message text (in [Intent.EXTRA_TEXT](/reference/android/content/Intent#EXTRA%5FTEXT)) and a message subject (in [Intent.EXTRA_SUBJECT](/reference/android/content/Intent#EXTRA%5FSUBJECT)).

Note: The intent-filter that consumes this Intent needs to be in a [Service](/reference/android/app/Service) that requires the permission [Manifest.permission.SEND_RESPOND_VIA_MESSAGE](/reference/android/Manifest.permission#SEND%5FRESPOND%5FVIA%5FMESSAGE).

For example, the service that receives this intent can be declared in the manifest file with an intent filter like this:

Output: nothing.

Constant Value: "android.intent.action.RESPOND_VIA_MESSAGE"

ACTION_SECRET_CODE

public static final String ACTION_SECRET_CODE

Broadcast Action: A debug code has been entered in the dialer.

This intent is broadcast by the system and OEM telephony apps may need to receive these broadcasts. And it requires the sender to be default dialer or has carrier privileges (see [hasCarrierPrivileges()](/reference/android/telephony/TelephonyManager#hasCarrierPrivileges%28%29)).

These "secret codes" are used to activate developer menus by dialing certain codes. And they are of the form *#*#<code>#*#*. The intent will have the data URI: android_secret_code://<code>. It is possible that a manifest receiver would be woken up even if it is not currently running.

It is supposed to replace [Telephony.Sms.Intents.SECRET_CODE_ACTION](/reference/android/provider/Telephony.Sms.Intents#SECRET%5FCODE%5FACTION) in the next Android version. Before that both of these two actions will be broadcast.

Constant Value: "android.telephony.action.SECRET_CODE"

ACTION_SUBSCRIPTION_CARRIER_IDENTITY_CHANGED

public static final String ACTION_SUBSCRIPTION_CARRIER_IDENTITY_CHANGED

Broadcast Action: The subscription carrier identity has changed. This intent could be sent on the following events:

The intent will have the following extra values:

This is a protected intent that can only be sent by the system.

Constant Value: "android.telephony.action.SUBSCRIPTION_CARRIER_IDENTITY_CHANGED"

ALLOWED_NETWORK_TYPES_REASON_CARRIER

public static final int ALLOWED_NETWORK_TYPES_REASON_CARRIER

To indicate allowed network type change is requested by carrier. Carrier configuration won't affect the settings configured through other reasons and will result in allowing network types that are in both configurations (i.e intersection of both sets).

Constant Value: 2 (0x00000002)

ALLOWED_NETWORK_TYPES_REASON_USER

public static final int ALLOWED_NETWORK_TYPES_REASON_USER

To indicate allowed network type change is requested by user.

Constant Value: 0 (0x00000000)

APPTYPE_CSIM

public static final int APPTYPE_CSIM

UICC application type is CSIM

Constant Value: 4 (0x00000004)

APPTYPE_ISIM

public static final int APPTYPE_ISIM

UICC application type is ISIM

Constant Value: 5 (0x00000005)

APPTYPE_RUIM

public static final int APPTYPE_RUIM

UICC application type is RUIM

Constant Value: 3 (0x00000003)

APPTYPE_SIM

public static final int APPTYPE_SIM

UICC application type is SIM

Constant Value: 1 (0x00000001)

APPTYPE_UNKNOWN

public static final int APPTYPE_UNKNOWN

UICC application type is unknown or not specified

Constant Value: 0 (0x00000000)

APPTYPE_USIM

public static final int APPTYPE_USIM

UICC application type is USIM

Constant Value: 2 (0x00000002)

AUTHTYPE_EAP_AKA

public static final int AUTHTYPE_EAP_AKA

Authentication type for UICC challenge is EAP AKA. See RFC 4187 for details.

Constant Value: 129 (0x00000081)

AUTHTYPE_EAP_SIM

public static final int AUTHTYPE_EAP_SIM

Authentication type for UICC challenge is EAP SIM. See RFC 4186 for details.

Constant Value: 128 (0x00000080)

AUTHTYPE_GBA_BOOTSTRAP

public static final int AUTHTYPE_GBA_BOOTSTRAP

Authentication type for GBA Bootstrap Challenge. Pass this authentication type into the [getIccAuthentication(int, int, String)](/reference/android/telephony/TelephonyManager#getIccAuthentication%28int,%20int,%20java.lang.String%29) API to perform a GBA Bootstrap challenge (BSF), with data (generated according to the procedure defined in 3GPP 33.220 Section 5.3.2 step.4) in base64 encoding. This method will return the Bootstrapping response in base64 encoding when ICC authentication is completed. Ref 3GPP 33.220 Section 5.3.2.

Constant Value: 132 (0x00000084)

AUTHTYPE_GBA_NAF_KEY_EXTERNAL

public static final int AUTHTYPE_GBA_NAF_KEY_EXTERNAL

Authentication type for GBA Network Application Functions (NAF) key External Challenge. Pass this authentication type into the [getIccAuthentication(int, int, String)](/reference/android/telephony/TelephonyManager#getIccAuthentication%28int,%20int,%20java.lang.String%29) API to perform a GBA Network Applications Functions (NAF) key External challenge using the NAF_ID parameter as the data in base64 encoding. This method will return the Ks_Ext_Naf key in base64 encoding when ICC authentication is completed. Ref 3GPP 33.220 Section 5.3.2.

Constant Value: 133 (0x00000085)

CALL_COMPOSER_STATUS_BUSINESS_ONLY

public static final int CALL_COMPOSER_STATUS_BUSINESS_ONLY

Call composer status Business Only from user setting.

Constant Value: 2 (0x00000002)

CALL_COMPOSER_STATUS_OFF

public static final int CALL_COMPOSER_STATUS_OFF

Call composer status OFF from user setting.

Constant Value: 0 (0x00000000)

CALL_COMPOSER_STATUS_ON

public static final int CALL_COMPOSER_STATUS_ON

Call composer status ON from user setting.

Constant Value: 1 (0x00000001)

CALL_STATE_IDLE

public static final int CALL_STATE_IDLE

Device call state: No activity.

Constant Value: 0 (0x00000000)

CALL_STATE_OFFHOOK

public static final int CALL_STATE_OFFHOOK

Device call state: Off-hook. At least one call exists that is dialing, active, or on hold, and no calls are ringing or waiting.

Constant Value: 2 (0x00000002)

CALL_STATE_RINGING

public static final int CALL_STATE_RINGING

Device call state: Ringing. A new call arrived and is ringing or waiting. In the latter case, another call is already active.

Constant Value: 1 (0x00000001)

CARRIER_RESTRICTION_STATUS_NOT_RESTRICTED

public static final int CARRIER_RESTRICTION_STATUS_NOT_RESTRICTED

The device is not restricted to a carrier

Constant Value: 1 (0x00000001)

CARRIER_RESTRICTION_STATUS_RESTRICTED

public static final int CARRIER_RESTRICTION_STATUS_RESTRICTED

The device is restricted to a carrier.

Constant Value: 2 (0x00000002)

CARRIER_RESTRICTION_STATUS_RESTRICTED_TO_CALLER

public static final int CARRIER_RESTRICTION_STATUS_RESTRICTED_TO_CALLER

The device is restricted to the carrier of the calling application.

Constant Value: 3 (0x00000003)

CARRIER_RESTRICTION_STATUS_UNKNOWN

public static final int CARRIER_RESTRICTION_STATUS_UNKNOWN

Carrier restriction status value is unknown, in case modem did not provide any information about carrier restriction status.

Constant Value: 0 (0x00000000)

CDMA_ROAMING_MODE_AFFILIATED

public static final int CDMA_ROAMING_MODE_AFFILIATED

This constant was deprecated in API level 36.
Legacy CDMA is unsupported.

Value for [CarrierConfigManager.KEY_CDMA_ROAMING_MODE_INT](/reference/android/telephony/CarrierConfigManager#KEY%5FCDMA%5FROAMING%5FMODE%5FINT) which permits roaming on affiliated networks.

Constant Value: 1 (0x00000001)

CDMA_ROAMING_MODE_ANY

public static final int CDMA_ROAMING_MODE_ANY

This constant was deprecated in API level 36.
Legacy CDMA is unsupported.

Value for [CarrierConfigManager.KEY_CDMA_ROAMING_MODE_INT](/reference/android/telephony/CarrierConfigManager#KEY%5FCDMA%5FROAMING%5FMODE%5FINT) which permits roaming on any network.

Constant Value: 2 (0x00000002)

CDMA_ROAMING_MODE_HOME

public static final int CDMA_ROAMING_MODE_HOME

This constant was deprecated in API level 36.
Legacy CDMA is unsupported.

Value for [CarrierConfigManager.KEY_CDMA_ROAMING_MODE_INT](/reference/android/telephony/CarrierConfigManager#KEY%5FCDMA%5FROAMING%5FMODE%5FINT) which only permits connections on home networks.

Constant Value: 0 (0x00000000)

CDMA_ROAMING_MODE_RADIO_DEFAULT

public static final int CDMA_ROAMING_MODE_RADIO_DEFAULT

This constant was deprecated in API level 36.
Legacy CDMA is unsupported.

Value for [CarrierConfigManager.KEY_CDMA_ROAMING_MODE_INT](/reference/android/telephony/CarrierConfigManager#KEY%5FCDMA%5FROAMING%5FMODE%5FINT) which leaves the roaming mode set to the radio default or to the user's preference if they've indicated one.

Constant Value: -1 (0xffffffff)

DATA_ACTIVITY_DORMANT

public static final int DATA_ACTIVITY_DORMANT

Data connection is active, but physical link is down

Constant Value: 4 (0x00000004)

DATA_ACTIVITY_IN

public static final int DATA_ACTIVITY_IN

Data connection activity: Currently receiving IP PPP traffic.

Constant Value: 1 (0x00000001)

DATA_ACTIVITY_INOUT

public static final int DATA_ACTIVITY_INOUT

Data connection activity: Currently both sending and receiving IP PPP traffic.

Constant Value: 3 (0x00000003)

DATA_ACTIVITY_NONE

public static final int DATA_ACTIVITY_NONE

Data connection activity: No traffic.

Constant Value: 0 (0x00000000)

DATA_ACTIVITY_OUT

public static final int DATA_ACTIVITY_OUT

Data connection activity: Currently sending IP PPP traffic.

Constant Value: 2 (0x00000002)

DATA_CONNECTED

public static final int DATA_CONNECTED

Data connection state: Connected. IP traffic should be available.

Constant Value: 2 (0x00000002)

DATA_CONNECTING

public static final int DATA_CONNECTING

Data connection state: Currently setting up a data connection.

Constant Value: 1 (0x00000001)

DATA_DISCONNECTED

public static final int DATA_DISCONNECTED

Data connection state: Disconnected. IP traffic not available.

Constant Value: 0 (0x00000000)

DATA_DISCONNECTING

public static final int DATA_DISCONNECTING

Data connection state: Disconnecting. IP traffic may be available but will cease working imminently.

Constant Value: 4 (0x00000004)

DATA_ENABLED_REASON_CARRIER

public static final int DATA_ENABLED_REASON_CARRIER

To indicate enable or disable carrier data by the system based on carrier signalling or carrier privileged apps. Carrier data on/off won't affect user settings but will bypass the settings and turns off data internally if set to false.

Constant Value: 2 (0x00000002)

DATA_ENABLED_REASON_OVERRIDE

public static final int DATA_ENABLED_REASON_OVERRIDE

To indicate data was enabled or disabled due to mobile data policy overrides. Note that this is not a valid reason for [setDataEnabledForReason(int, boolean)](/reference/android/telephony/TelephonyManager#setDataEnabledForReason%28int,%20boolean%29) and is only used to indicate that data enabled was changed due to an override.

Constant Value: 4 (0x00000004)

DATA_ENABLED_REASON_POLICY

public static final int DATA_ENABLED_REASON_POLICY

To indicate that data control due to policy. Usually used when data limit is passed. Policy data on/off won't affect user settings but will bypass the settings and turns off data internally if set to false.

Constant Value: 1 (0x00000001)

DATA_ENABLED_REASON_THERMAL

public static final int DATA_ENABLED_REASON_THERMAL

To indicate enable or disable data by thermal service. Thermal data on/off won't affect user settings but will bypass the settings and turns off data internally if set to false.

Constant Value: 3 (0x00000003)

DATA_ENABLED_REASON_UNKNOWN

public static final int DATA_ENABLED_REASON_UNKNOWN

To indicate that data was enabled or disabled due to an unknown reason. Note that this is not a valid reason for [setDataEnabledForReason(int, boolean)](/reference/android/telephony/TelephonyManager#setDataEnabledForReason%28int,%20boolean%29) and is only used to indicate that data enabled was changed.

Constant Value: -1 (0xffffffff)

DATA_ENABLED_REASON_USER

public static final int DATA_ENABLED_REASON_USER

To indicate that user enabled or disabled data.

Constant Value: 0 (0x00000000)

DATA_HANDOVER_IN_PROGRESS

public static final int DATA_HANDOVER_IN_PROGRESS

Data connection state: Handover in progress. The connection is being transited from cellular network to IWLAN, or from IWLAN to cellular network.

Constant Value: 5 (0x00000005)

DATA_SUSPENDED

public static final int DATA_SUSPENDED

Data connection state: Suspended. The connection is up, but IP traffic is temporarily unavailable. For example, in a 2G network, data activity may be suspended when a voice call arrives.

Constant Value: 3 (0x00000003)

DATA_UNKNOWN

public static final int DATA_UNKNOWN

Data connection state: Unknown. Used before we know the state.

Constant Value: -1 (0xffffffff)

DEFAULT_PORT_INDEX

public static final int DEFAULT_PORT_INDEX

Default port index for a UICC. On physical SIM cards the only available port is 0. See [UiccPortInfo](/reference/android/telephony/UiccPortInfo) for more information on ports. See [EuiccManager.isSimPortAvailable(int)](/reference/android/telephony/euicc/EuiccManager#isSimPortAvailable%28int%29) for information on how portIndex is used on eUICCs.

Constant Value: 0 (0x00000000)

ERI_FLASH

public static final int ERI_FLASH

This constant was deprecated in API level 36.
Legacy CDMA is unsupported.

ERI (Enhanced Roaming Indicator) is FLASH i.e value 2 defined by 3GPP2 C.R1001-H v1.0 Table 8.1-1.

Constant Value: 2 (0x00000002)

ERI_OFF

public static final int ERI_OFF

This constant was deprecated in API level 36.
Legacy CDMA is unsupported.

ERI (Enhanced Roaming Indicator) is OFF i.e value 1 defined by 3GPP2 C.R1001-H v1.0 Table 8.1-1.

Constant Value: 1 (0x00000001)

ERI_ON

public static final int ERI_ON

This constant was deprecated in API level 36.
Legacy CDMA is unsupported.

ERI (Enhanced Roaming Indicator) is ON i.e value 0 defined by 3GPP2 C.R1001-H v1.0 Table 8.1-1.

Constant Value: 0 (0x00000000)

public static final String EXTRA_ACTIVE_SIM_SUPPORTED_COUNT

The number of active SIM supported by current multi-SIM config. It's not related to how many SIM/subscriptions are currently active. Same value will be returned by [getActiveModemCount()](/reference/android/telephony/TelephonyManager#getActiveModemCount%28%29). For single SIM mode, it's 1. For DSDS or DSDA mode, it's 2. For triple-SIM mode, it's 3. Extra of [ACTION_MULTI_SIM_CONFIG_CHANGED](/reference/android/telephony/TelephonyManager#ACTION%5FMULTI%5FSIM%5FCONFIG%5FCHANGED). type: integer

Constant Value: "android.telephony.extra.ACTIVE_SIM_SUPPORTED_COUNT"

public static final String EXTRA_APN_PROTOCOL

An integer extra containing the protocol of the apn connection. Sent with the [ACTION_CARRIER_SIGNAL_PCO_VALUE](/reference/android/telephony/TelephonyManager#ACTION%5FCARRIER%5FSIGNAL%5FPCO%5FVALUE) broadcast. See the PROTOCOL_* constants in [ApnSetting](/reference/android/telephony/data/ApnSetting) for a list of possible values.

Constant Value: "android.telephony.extra.APN_PROTOCOL"

public static final String EXTRA_CALL_VOICEMAIL_INTENT

The intent to call voicemail.

Constant Value: "android.telephony.extra.CALL_VOICEMAIL_INTENT"

public static final String EXTRA_DEFAULT_NETWORK_AVAILABLE

A boolean extra indicating the availability of the default network. Sent with the [ACTION_CARRIER_SIGNAL_DEFAULT_NETWORK_AVAILABLE](/reference/android/telephony/TelephonyManager#ACTION%5FCARRIER%5FSIGNAL%5FDEFAULT%5FNETWORK%5FAVAILABLE) broadcast.

Constant Value: "android.telephony.extra.DEFAULT_NETWORK_AVAILABLE"

EXTRA_EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE

public static final String EXTRA_EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE

Integer extra key used with [EVENT_DISPLAY_EMERGENCY_MESSAGE](/reference/android/telephony/TelephonyManager#EVENT%5FDISPLAY%5FEMERGENCY%5FMESSAGE) which indicates the type of handover from emergency call to satellite messaging.

Will be either android.telephony.satellite.SatelliteManager#EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE_SOS or android.telephony.satellite.SatelliteManager#EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE_T911

Set in the extras for the [EVENT_DISPLAY_EMERGENCY_MESSAGE](/reference/android/telephony/TelephonyManager#EVENT%5FDISPLAY%5FEMERGENCY%5FMESSAGE) connection event.

Constant Value: "android.telephony.extra.EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE"

public static final String EXTRA_EMERGENCY_CALL_TO_SATELLITE_LAUNCH_INTENT

Extra key used with the [EVENT_DISPLAY_EMERGENCY_MESSAGE](/reference/android/telephony/TelephonyManager#EVENT%5FDISPLAY%5FEMERGENCY%5FMESSAGE) for a [PendingIntent](/reference/android/app/PendingIntent) which will be launched by the Dialer app.

Constant Value: "android.telephony.extra.EMERGENCY_CALL_TO_SATELLITE_LAUNCH_INTENT"

public static final String EXTRA_HIDE_PUBLIC_SETTINGS

The boolean value indicating whether the voicemail settings activity launched by [ACTION_CONFIGURE_VOICEMAIL](/reference/android/telephony/TelephonyManager#ACTION%5FCONFIGURE%5FVOICEMAIL) should hide settings accessible through public API. This is used by dialer implementations which provides their own voicemail settings UI, but still needs to expose device specific voicemail settings to the user.

Constant Value: "android.telephony.extra.HIDE_PUBLIC_SETTINGS"

public static final String EXTRA_IS_REFRESH

Boolean value representing whether the [TelephonyManager.ACTION_SHOW_VOICEMAIL_NOTIFICATION](/reference/android/telephony/TelephonyManager#ACTION%5FSHOW%5FVOICEMAIL%5FNOTIFICATION) is new or a refresh of an existing notification. Notification refresh happens after reboot or connectivity changes. The user has already been notified for the voicemail so it should not alert the user, and should not be shown again if the user has dismissed it.

Constant Value: "android.telephony.extra.IS_REFRESH"

public static final String EXTRA_LAST_KNOWN_NETWORK_COUNTRY

The extra used with an [ACTION_NETWORK_COUNTRY_CHANGED](/reference/android/telephony/TelephonyManager#ACTION%5FNETWORK%5FCOUNTRY%5FCHANGED) to specify the last known the country code in ISO-3166-1 alpha-2 format. This might be an empty string when the country code was never available. The last known country code persists across reboot.

Retrieve with [android.content.Intent.getStringExtra(String)](/reference/android/content/Intent#getStringExtra%28java.lang.String%29).

Constant Value: "android.telephony.extra.LAST_KNOWN_NETWORK_COUNTRY"

public static final String EXTRA_LAUNCH_VOICEMAIL_SETTINGS_INTENT

The intent to launch voicemail settings.

Constant Value: "android.telephony.extra.LAUNCH_VOICEMAIL_SETTINGS_INTENT"

public static final String EXTRA_NOTIFICATION_COUNT

The number of voice messages associated with the notification.

Constant Value: "android.telephony.extra.NOTIFICATION_COUNT"

public static final String EXTRA_PCO_ID

An integer extra indicating the ID for the PCO data. Sent with the [ACTION_CARRIER_SIGNAL_PCO_VALUE](/reference/android/telephony/TelephonyManager#ACTION%5FCARRIER%5FSIGNAL%5FPCO%5FVALUE) broadcast.

Constant Value: "android.telephony.extra.PCO_ID"

public static final String EXTRA_PCO_VALUE

A byte array extra containing PCO data read from the modem. Sent with the [ACTION_CARRIER_SIGNAL_PCO_VALUE](/reference/android/telephony/TelephonyManager#ACTION%5FCARRIER%5FSIGNAL%5FPCO%5FVALUE) broadcast.

Constant Value: "android.telephony.extra.PCO_VALUE"

public static final String EXTRA_REDIRECTION_URL

String extra containing the redirection URL sent with[ACTION_CARRIER_SIGNAL_REDIRECTED](/reference/android/telephony/TelephonyManager#ACTION%5FCARRIER%5FSIGNAL%5FREDIRECTED).

Constant Value: "android.telephony.extra.REDIRECTION_URL"

public static final String EXTRA_SUBSCRIPTION_ID

An int extra used with [ACTION_SUBSCRIPTION_CARRIER_IDENTITY_CHANGED](/reference/android/telephony/TelephonyManager#ACTION%5FSUBSCRIPTION%5FCARRIER%5FIDENTITY%5FCHANGED) to indicate the subscription which has changed; or in general whenever a subscription ID needs specified.

Constant Value: "android.telephony.extra.SUBSCRIPTION_ID"

public static final String EXTRA_VOICEMAIL_NUMBER

The voicemail number.

Constant Value: "android.telephony.extra.VOICEMAIL_NUMBER"

INCLUDE_LOCATION_DATA_COARSE

public static final int INCLUDE_LOCATION_DATA_COARSE

Include coarse location data. Indicates whether the caller would not like to receive location related information which will be sent if the caller already possess[Manifest.permission.ACCESS_COARSE_LOCATION](/reference/android/Manifest.permission#ACCESS%5FCOARSE%5FLOCATION) and do not renounce the permissions.

Constant Value: 1 (0x00000001)

INCLUDE_LOCATION_DATA_FINE

public static final int INCLUDE_LOCATION_DATA_FINE

Include fine location data. Indicates whether the caller would not like to receive location related information which will be sent if the caller already possess[Manifest.permission.ACCESS_FINE_LOCATION](/reference/android/Manifest.permission#ACCESS%5FFINE%5FLOCATION) and do not renounce the permissions.

Constant Value: 2 (0x00000002)

INCLUDE_LOCATION_DATA_NONE

public static final int INCLUDE_LOCATION_DATA_NONE

Specifies to not include any location related data. Indicates whether the caller would not like to receive location related information which will be sent if the caller already possess[Manifest.permission.ACCESS_COARSE_LOCATION](/reference/android/Manifest.permission#ACCESS%5FCOARSE%5FLOCATION) and do not renounce the permissions.

Constant Value: 0 (0x00000000)

MULTISIM_ALLOWED

public static final int MULTISIM_ALLOWED

The usage of multiple SIM cards at the same time to register on the network (e.g. Dual Standby or Dual Active) is supported.

Constant Value: 0 (0x00000000)

MULTISIM_NOT_SUPPORTED_BY_CARRIER

public static final int MULTISIM_NOT_SUPPORTED_BY_CARRIER

The usage of multiple SIM cards at the same time to register on the network (e.g. Dual Standby or Dual Active) is supported by the hardware, but restricted by the carrier.

Constant Value: 2 (0x00000002)

MULTISIM_NOT_SUPPORTED_BY_HARDWARE

public static final int MULTISIM_NOT_SUPPORTED_BY_HARDWARE

The usage of multiple SIM cards at the same time to register on the network (e.g. Dual Standby or Dual Active) is not supported by the hardware.

Constant Value: 1 (0x00000001)

NETWORK_SELECTION_MODE_AUTO

public static final int NETWORK_SELECTION_MODE_AUTO

Constant Value: 1 (0x00000001)

NETWORK_SELECTION_MODE_MANUAL

public static final int NETWORK_SELECTION_MODE_MANUAL

Constant Value: 2 (0x00000002)

NETWORK_SELECTION_MODE_UNKNOWN

public static final int NETWORK_SELECTION_MODE_UNKNOWN

Constant Value: 0 (0x00000000)

NETWORK_TYPE_1xRTT

public static final int NETWORK_TYPE_1xRTT

This constant was deprecated in API level 36.
Legacy CDMA is unsupported.

Current network is 1xRTT

Constant Value: 7 (0x00000007)

NETWORK_TYPE_BITMASK_1xRTT

public static final long NETWORK_TYPE_BITMASK_1xRTT

network type bitmask indicating the support of radio tech 1xRTT.

Constant Value: 64 (0x0000000000000040)

NETWORK_TYPE_BITMASK_CDMA

public static final long NETWORK_TYPE_BITMASK_CDMA

This constant was deprecated in API level 36.
Legacy CDMA is unsupported.

network type bitmask indicating the support of radio tech CDMA(IS95A/IS95B).

Constant Value: 8 (0x0000000000000008)

NETWORK_TYPE_BITMASK_EDGE

public static final long NETWORK_TYPE_BITMASK_EDGE

network type bitmask indicating the support of radio tech EDGE.

Constant Value: 2 (0x0000000000000002)

NETWORK_TYPE_BITMASK_EHRPD

public static final long NETWORK_TYPE_BITMASK_EHRPD

This constant was deprecated in API level 36.
Legacy CDMA is unsupported.

network type bitmask indicating the support of radio tech EHRPD.

Constant Value: 8192 (0x0000000000002000)

NETWORK_TYPE_BITMASK_EVDO_0

public static final long NETWORK_TYPE_BITMASK_EVDO_0

network type bitmask indicating the support of radio tech EVDO 0.

Constant Value: 16 (0x0000000000000010)

NETWORK_TYPE_BITMASK_EVDO_A

public static final long NETWORK_TYPE_BITMASK_EVDO_A

network type bitmask indicating the support of radio tech EVDO A.

Constant Value: 32 (0x0000000000000020)

NETWORK_TYPE_BITMASK_EVDO_B

public static final long NETWORK_TYPE_BITMASK_EVDO_B

network type bitmask indicating the support of radio tech EVDO B.

Constant Value: 2048 (0x0000000000000800)

NETWORK_TYPE_BITMASK_GPRS

public static final long NETWORK_TYPE_BITMASK_GPRS

network type bitmask indicating the support of radio tech GPRS.

Constant Value: 1 (0x0000000000000001)

NETWORK_TYPE_BITMASK_GSM

public static final long NETWORK_TYPE_BITMASK_GSM

network type bitmask indicating the support of radio tech GSM.

Constant Value: 32768 (0x0000000000008000)

NETWORK_TYPE_BITMASK_HSDPA

public static final long NETWORK_TYPE_BITMASK_HSDPA

network type bitmask indicating the support of radio tech HSDPA.

Constant Value: 128 (0x0000000000000080)

NETWORK_TYPE_BITMASK_HSPA

public static final long NETWORK_TYPE_BITMASK_HSPA

network type bitmask indicating the support of radio tech HSPA.

Constant Value: 512 (0x0000000000000200)

NETWORK_TYPE_BITMASK_HSPAP

public static final long NETWORK_TYPE_BITMASK_HSPAP

network type bitmask indicating the support of radio tech HSPAP.

Constant Value: 16384 (0x0000000000004000)

NETWORK_TYPE_BITMASK_HSUPA

public static final long NETWORK_TYPE_BITMASK_HSUPA

network type bitmask indicating the support of radio tech HSUPA.

Constant Value: 256 (0x0000000000000100)

NETWORK_TYPE_BITMASK_IWLAN

public static final long NETWORK_TYPE_BITMASK_IWLAN

network type bitmask indicating the support of radio tech IWLAN.

Constant Value: 131072 (0x0000000000020000)

NETWORK_TYPE_BITMASK_LTE

public static final long NETWORK_TYPE_BITMASK_LTE

network type bitmask indicating the support of radio tech LTE.

Constant Value: 4096 (0x0000000000001000)

NETWORK_TYPE_BITMASK_LTE_CA

public static final long NETWORK_TYPE_BITMASK_LTE_CA

This constant was deprecated in API level 34.
Please use [NETWORK_TYPE_BITMASK_LTE](/reference/android/telephony/TelephonyManager#NETWORK%5FTYPE%5FBITMASK%5FLTE) instead. Deprecated in Android U.

NOT USED; this bitmask is exposed accidentally. If used, will be converted to [NETWORK_TYPE_BITMASK_LTE](/reference/android/telephony/TelephonyManager#NETWORK%5FTYPE%5FBITMASK%5FLTE). network type bitmask indicating the support of radio tech LTE CA (carrier aggregation).

Constant Value: 262144 (0x0000000000040000)

NETWORK_TYPE_BITMASK_NR

public static final long NETWORK_TYPE_BITMASK_NR

network type bitmask indicating the support of radio tech NR(New Radio) 5G.

Constant Value: 524288 (0x0000000000080000)

NETWORK_TYPE_BITMASK_TD_SCDMA

public static final long NETWORK_TYPE_BITMASK_TD_SCDMA

network type bitmask indicating the support of radio tech TD_SCDMA.

Constant Value: 65536 (0x0000000000010000)

NETWORK_TYPE_BITMASK_UMTS

public static final long NETWORK_TYPE_BITMASK_UMTS

network type bitmask indicating the support of radio tech UMTS.

Constant Value: 4 (0x0000000000000004)

NETWORK_TYPE_BITMASK_UNKNOWN

public static final long NETWORK_TYPE_BITMASK_UNKNOWN

network type bitmask unknown.

Constant Value: 0 (0x0000000000000000)

NETWORK_TYPE_CDMA

public static final int NETWORK_TYPE_CDMA

This constant was deprecated in API level 36.
Legacy CDMA is unsupported.

Current network is CDMA: Either IS95A or IS95B

Constant Value: 4 (0x00000004)

NETWORK_TYPE_EDGE

public static final int NETWORK_TYPE_EDGE

Current network is EDGE

Constant Value: 2 (0x00000002)

NETWORK_TYPE_EHRPD

public static final int NETWORK_TYPE_EHRPD

This constant was deprecated in API level 36.
Legacy CDMA is unsupported.

Current network is eHRPD

Constant Value: 14 (0x0000000e)

NETWORK_TYPE_EVDO_0

public static final int NETWORK_TYPE_EVDO_0

This constant was deprecated in API level 36.
Legacy CDMA is unsupported.

Current network is EVDO revision 0

Constant Value: 5 (0x00000005)

NETWORK_TYPE_EVDO_A

public static final int NETWORK_TYPE_EVDO_A

This constant was deprecated in API level 36.
Legacy CDMA is unsupported.

Current network is EVDO revision A

Constant Value: 6 (0x00000006)

NETWORK_TYPE_EVDO_B

public static final int NETWORK_TYPE_EVDO_B

This constant was deprecated in API level 36.
Legacy CDMA is unsupported.

Current network is EVDO revision B

Constant Value: 12 (0x0000000c)

NETWORK_TYPE_GPRS

public static final int NETWORK_TYPE_GPRS

Current network is GPRS

Constant Value: 1 (0x00000001)

NETWORK_TYPE_GSM

public static final int NETWORK_TYPE_GSM

Current network is GSM

Constant Value: 16 (0x00000010)

NETWORK_TYPE_HSDPA

public static final int NETWORK_TYPE_HSDPA

Current network is HSDPA

Constant Value: 8 (0x00000008)

NETWORK_TYPE_HSPA

public static final int NETWORK_TYPE_HSPA

Current network is HSPA

Constant Value: 10 (0x0000000a)

NETWORK_TYPE_HSPAP

public static final int NETWORK_TYPE_HSPAP

Current network is HSPA+

Constant Value: 15 (0x0000000f)

NETWORK_TYPE_HSUPA

public static final int NETWORK_TYPE_HSUPA

Current network is HSUPA

Constant Value: 9 (0x00000009)

NETWORK_TYPE_IDEN

public static final int NETWORK_TYPE_IDEN

This constant was deprecated in API level 34.
Legacy network type no longer being used starting in Android U.

Current network is iDen

Constant Value: 11 (0x0000000b)

NETWORK_TYPE_IWLAN

public static final int NETWORK_TYPE_IWLAN

Current network is IWLAN

Constant Value: 18 (0x00000012)

NETWORK_TYPE_LTE

public static final int NETWORK_TYPE_LTE

Current network is LTE

Constant Value: 13 (0x0000000d)

NETWORK_TYPE_NR

public static final int NETWORK_TYPE_NR

Current network is NR (New Radio) 5G. This will only be returned for 5G SA. For 5G NSA, the network type will be [NETWORK_TYPE_LTE](/reference/android/telephony/TelephonyManager#NETWORK%5FTYPE%5FLTE).

Constant Value: 20 (0x00000014)

NETWORK_TYPE_TD_SCDMA

public static final int NETWORK_TYPE_TD_SCDMA

Current network is TD_SCDMA

Constant Value: 17 (0x00000011)

NETWORK_TYPE_UMTS

public static final int NETWORK_TYPE_UMTS

Current network is UMTS

Constant Value: 3 (0x00000003)

NETWORK_TYPE_UNKNOWN

public static final int NETWORK_TYPE_UNKNOWN

Network type is unknown

Constant Value: 0 (0x00000000)

PHONE_TYPE_CDMA

public static final int PHONE_TYPE_CDMA

This constant was deprecated in API level 36.
Legacy CDMA is unsupported.

Phone radio is CDMA.

Constant Value: 2 (0x00000002)

PHONE_TYPE_GSM

public static final int PHONE_TYPE_GSM

Phone radio is GSM.

Constant Value: 1 (0x00000001)

PHONE_TYPE_NONE

public static final int PHONE_TYPE_NONE

No phone radio.

Constant Value: 0 (0x00000000)

PHONE_TYPE_SIP

public static final int PHONE_TYPE_SIP

Phone is via SIP.

Constant Value: 3 (0x00000003)

PREMIUM_CAPABILITY_PRIORITIZE_LATENCY

public static final int PREMIUM_CAPABILITY_PRIORITIZE_LATENCY

A premium capability that boosts the network to allow for real-time interactive traffic by prioritizing low latency communication. Corresponds to [NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_LATENCY](/reference/android/net/NetworkCapabilities#NET%5FCAPABILITY%5FPRIORITIZE%5FLATENCY).

Constant Value: 34 (0x00000022)

PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_IN_PROGRESS

public static final int PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_IN_PROGRESS

Purchase premium capability failed because a request was already made and is in progress. This may have been requested by either the same app or another app. Subsequent attempts will return the same error until the previous request completes.

Constant Value: 4 (0x00000004)

PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_PURCHASED

public static final int PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_PURCHASED

Purchase premium capability failed because it is already purchased and available. Subsequent attempts will return the same error until the performance boost expires.

Constant Value: 3 (0x00000003)

PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_DISABLED

public static final int PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_DISABLED

Purchase premium capability failed because the carrier disabled or does not support the capability, as specified in[CarrierConfigManager.KEY_SUPPORTED_PREMIUM_CAPABILITIES_INT_ARRAY](/reference/android/telephony/CarrierConfigManager#KEY%5FSUPPORTED%5FPREMIUM%5FCAPABILITIES%5FINT%5FARRAY). Subsequent attempts will return the same error until the carrier enables the feature.

Constant Value: 7 (0x00000007)

PURCHASE_PREMIUM_CAPABILITY_RESULT_FEATURE_NOT_SUPPORTED

public static final int PURCHASE_PREMIUM_CAPABILITY_RESULT_FEATURE_NOT_SUPPORTED

Purchase premium capability failed because the device does not support the feature. Subsequent attempts will return the same error.

Constant Value: 10 (0x0000000a)

PURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_NOT_AVAILABLE

public static final int PURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_NOT_AVAILABLE

Purchase premium capability failed because the network is not available. Subsequent attempts will return the same error until network conditions change.

Constant Value: 12 (0x0000000c)

PURCHASE_PREMIUM_CAPABILITY_RESULT_NOT_DEFAULT_DATA_SUBSCRIPTION

public static final int PURCHASE_PREMIUM_CAPABILITY_RESULT_NOT_DEFAULT_DATA_SUBSCRIPTION

Purchase premium capability failed because the request was not made on the default data subscription, indicated by [SubscriptionManager.getDefaultDataSubscriptionId()](/reference/android/telephony/SubscriptionManager#getDefaultDataSubscriptionId%28%29). Subsequent attempts will return the same error until the request is made on the default data subscription.

Constant Value: 14 (0x0000000e)

PURCHASE_PREMIUM_CAPABILITY_RESULT_NOT_FOREGROUND

public static final int PURCHASE_PREMIUM_CAPABILITY_RESULT_NOT_FOREGROUND

Purchase premium capability failed because the requesting application is not in the foreground. Subsequent attempts will return the same error until the requesting application moves to the foreground.

Constant Value: 5 (0x00000005)

PURCHASE_PREMIUM_CAPABILITY_RESULT_PENDING_NETWORK_SETUP

public static final int PURCHASE_PREMIUM_CAPABILITY_RESULT_PENDING_NETWORK_SETUP

Purchase premium capability was successful and is waiting for the network to setup the slicing configuration. If the setup is complete within the time specified by[CarrierConfigManager.KEY_PREMIUM_CAPABILITY_NETWORK_SETUP_TIME_MILLIS_LONG](/reference/android/telephony/CarrierConfigManager#KEY%5FPREMIUM%5FCAPABILITY%5FNETWORK%5FSETUP%5FTIME%5FMILLIS%5FLONG), subsequent requests will return [PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_PURCHASED](/reference/android/telephony/TelephonyManager#PURCHASE%5FPREMIUM%5FCAPABILITY%5FRESULT%5FALREADY%5FPURCHASED) until the purchase expires. If the setup is not complete within the time specified above, applications can request the premium capability again.

Constant Value: 15 (0x0000000f)

PURCHASE_PREMIUM_CAPABILITY_RESULT_REQUEST_FAILED

public static final int PURCHASE_PREMIUM_CAPABILITY_RESULT_REQUEST_FAILED

Purchase premium capability failed because the telephony service is unavailable or there was an error in the phone process. Subsequent attempts will return the same error until request conditions are satisfied.

Constant Value: 11 (0x0000000b)

SET_OPPORTUNISTIC_SUB_INACTIVE_SUBSCRIPTION

public static final int SET_OPPORTUNISTIC_SUB_INACTIVE_SUBSCRIPTION

The subscription is not valid. It must be an active opportunistic subscription.

Constant Value: 2 (0x00000002)

SET_OPPORTUNISTIC_SUB_NO_OPPORTUNISTIC_SUB_AVAILABLE

public static final int SET_OPPORTUNISTIC_SUB_NO_OPPORTUNISTIC_SUB_AVAILABLE

The subscription is not valid. It must be an opportunistic subscription.

Constant Value: 3 (0x00000003)

SET_OPPORTUNISTIC_SUB_REMOTE_SERVICE_EXCEPTION

public static final int SET_OPPORTUNISTIC_SUB_REMOTE_SERVICE_EXCEPTION

Subscription service happened remote exception.

Constant Value: 4 (0x00000004)

SET_OPPORTUNISTIC_SUB_SUCCESS

public static final int SET_OPPORTUNISTIC_SUB_SUCCESS

No error. Operation succeeded.

Constant Value: 0 (0x00000000)

SET_OPPORTUNISTIC_SUB_VALIDATION_FAILED

public static final int SET_OPPORTUNISTIC_SUB_VALIDATION_FAILED

Validation failed when trying to switch to preferred subscription.

Constant Value: 1 (0x00000001)

SIM_STATE_ABSENT

public static final int SIM_STATE_ABSENT

SIM card state: no SIM card is available in the device

Constant Value: 1 (0x00000001)

SIM_STATE_CARD_IO_ERROR

public static final int SIM_STATE_CARD_IO_ERROR

SIM card state: SIM Card Error, present but faulty

Constant Value: 8 (0x00000008)

SIM_STATE_CARD_RESTRICTED

public static final int SIM_STATE_CARD_RESTRICTED

SIM card state: SIM Card restricted, present but not usable due to carrier restrictions.

Constant Value: 9 (0x00000009)

SIM_STATE_NETWORK_LOCKED

public static final int SIM_STATE_NETWORK_LOCKED

SIM card state: Locked: requires a network PIN to unlock

Constant Value: 4 (0x00000004)

SIM_STATE_NOT_READY

public static final int SIM_STATE_NOT_READY

SIM card state: SIM Card is NOT READY

Constant Value: 6 (0x00000006)

SIM_STATE_PERM_DISABLED

public static final int SIM_STATE_PERM_DISABLED

SIM card state: SIM Card Error, permanently disabled

Constant Value: 7 (0x00000007)

SIM_STATE_PIN_REQUIRED

public static final int SIM_STATE_PIN_REQUIRED

SIM card state: Locked: requires the user's SIM PIN to unlock

Constant Value: 2 (0x00000002)

SIM_STATE_PUK_REQUIRED

public static final int SIM_STATE_PUK_REQUIRED

SIM card state: Locked: requires the user's SIM PUK to unlock

Constant Value: 3 (0x00000003)

SIM_STATE_READY

public static final int SIM_STATE_READY

SIM card state: Ready

Constant Value: 5 (0x00000005)

SIM_STATE_UNKNOWN

public static final int SIM_STATE_UNKNOWN

SIM card state: Unknown. Signifies that the SIM is in transition between states. For example, when the user inputs the SIM pin under PIN_REQUIRED state, a query for sim status returns this state before turning to SIM_STATE_READY. These are the ordinal value of IccCardConstants.State.

Constant Value: 0 (0x00000000)

TTY_MODE_FULL

public static final int TTY_MODE_FULL

TTY (teletypewriter) mode is on. The speaker is off and the microphone is muted. The user will communicate with the remote party by sending and receiving text messages.

Constant Value: 1 (0x00000001)

TTY_MODE_HCO

public static final int TTY_MODE_HCO

TTY (teletypewriter) mode is in hearing carryover mode (HCO). The microphone is muted but the speaker is on. The user will communicate with the remote party by sending text messages and hearing an audible reply.

Constant Value: 2 (0x00000002)

TTY_MODE_OFF

public static final int TTY_MODE_OFF

TTY (teletypewriter) mode is off.

Constant Value: 0 (0x00000000)

TTY_MODE_VCO

public static final int TTY_MODE_VCO

TTY (teletypewriter) mode is in voice carryover mode (VCO). The speaker is off but the microphone is still on. User will communicate with the remote party by speaking and receiving text message replies.

Constant Value: 3 (0x00000003)

UNKNOWN_CARRIER_ID

public static final int UNKNOWN_CARRIER_ID

An unknown carrier id. It could either be subscription unavailable or the subscription carrier cannot be recognized. Unrecognized carriers here means[MCC+MNC](/reference/android/telephony/TelephonyManager#getSimOperator%28%29) cannot be identified.

Constant Value: -1 (0xffffffff)

UNSUPPORTED_CARD_ID

public static final int UNSUPPORTED_CARD_ID

A UICC card identifier used if the device does not support the operation. For example, [getCardIdForDefaultEuicc()](/reference/android/telephony/TelephonyManager#getCardIdForDefaultEuicc%28%29) returns this value if the device has no eUICC, or the eUICC cannot be read.

Constant Value: -1 (0xffffffff)

UPDATE_AVAILABLE_NETWORKS_ABORTED

public static final int UPDATE_AVAILABLE_NETWORKS_ABORTED

The request is aborted.

Constant Value: 2 (0x00000002)

UPDATE_AVAILABLE_NETWORKS_DISABLE_MODEM_FAIL

public static final int UPDATE_AVAILABLE_NETWORKS_DISABLE_MODEM_FAIL

Disable modem fail.

Constant Value: 5 (0x00000005)

UPDATE_AVAILABLE_NETWORKS_ENABLE_MODEM_FAIL

public static final int UPDATE_AVAILABLE_NETWORKS_ENABLE_MODEM_FAIL

Enable modem fail.

Constant Value: 6 (0x00000006)

UPDATE_AVAILABLE_NETWORKS_INVALID_ARGUMENTS

public static final int UPDATE_AVAILABLE_NETWORKS_INVALID_ARGUMENTS

The parameter passed in is invalid.

Constant Value: 3 (0x00000003)

UPDATE_AVAILABLE_NETWORKS_MULTIPLE_NETWORKS_NOT_SUPPORTED

public static final int UPDATE_AVAILABLE_NETWORKS_MULTIPLE_NETWORKS_NOT_SUPPORTED

Carrier app does not support multiple available networks.

Constant Value: 7 (0x00000007)

UPDATE_AVAILABLE_NETWORKS_NO_CARRIER_PRIVILEGE

public static final int UPDATE_AVAILABLE_NETWORKS_NO_CARRIER_PRIVILEGE

No carrier privilege.

Constant Value: 4 (0x00000004)

UPDATE_AVAILABLE_NETWORKS_NO_OPPORTUNISTIC_SUB_AVAILABLE

public static final int UPDATE_AVAILABLE_NETWORKS_NO_OPPORTUNISTIC_SUB_AVAILABLE

The subscription is not valid. It must be an opportunistic subscription.

Constant Value: 8 (0x00000008)

UPDATE_AVAILABLE_NETWORKS_REMOTE_SERVICE_EXCEPTION

public static final int UPDATE_AVAILABLE_NETWORKS_REMOTE_SERVICE_EXCEPTION

There is no OpportunisticNetworkService.

Constant Value: 9 (0x00000009)

UPDATE_AVAILABLE_NETWORKS_SERVICE_IS_DISABLED

public static final int UPDATE_AVAILABLE_NETWORKS_SERVICE_IS_DISABLED

OpportunisticNetworkService is disabled.

Constant Value: 10 (0x0000000a)

UPDATE_AVAILABLE_NETWORKS_SUCCESS

public static final int UPDATE_AVAILABLE_NETWORKS_SUCCESS

No error. Operation succeeded.

Constant Value: 0 (0x00000000)

UPDATE_AVAILABLE_NETWORKS_UNKNOWN_FAILURE

public static final int UPDATE_AVAILABLE_NETWORKS_UNKNOWN_FAILURE

There is a unknown failure happened.

Constant Value: 1 (0x00000001)

VVM_TYPE_CVVM

public static final String VVM_TYPE_CVVM

A flavor of OMTP protocol with a different mobile originated (MO) format

Constant Value: "vvm_type_cvvm"

VVM_TYPE_OMTP

public static final String VVM_TYPE_OMTP

The OMTP protocol.

Constant Value: "vvm_type_omtp"

Fields

Public methods

createForPhoneAccountHandle

public TelephonyManager createForPhoneAccountHandle (PhoneAccountHandle phoneAccountHandle)

Create a new TelephonyManager object pinned to the subscription ID associated with the given phone account.

Parameters
phoneAccountHandle PhoneAccountHandle
Returns
TelephonyManager a TelephonyManager that uses the given phone account for all calls, or null if the phone account does not correspond to a valid subscription ID.

createForSubscriptionId

public TelephonyManager createForSubscriptionId (int subId)

Create a new TelephonyManager object pinned to the given subscription ID.

Parameters
subId int
Returns
TelephonyManager a TelephonyManager that uses the given subId for all calls.

getActiveModemCount

public int getActiveModemCount ()

Returns the number of logical modems currently configured to be activated.

Returns
int

getAllCellInfo

public List<CellInfo> getAllCellInfo ()

Requests all available cell information from all radios on the device including the camped/registered, serving, and neighboring cells.

The response can include one or more [CellInfoGsm](/reference/android/telephony/CellInfoGsm),[CellInfoCdma](/reference/android/telephony/CellInfoCdma),[CellInfoTdscdma](/reference/android/telephony/CellInfoTdscdma),[CellInfoLte](/reference/android/telephony/CellInfoLte), and[CellInfoWcdma](/reference/android/telephony/CellInfoWcdma) objects, in any combination. It is typical to see instances of one or more of any these in the list. In addition, zero or more of the returned objects may be considered registered; that is, their[CellInfo.isRegistered()](/reference/android/telephony/CellInfo#isRegistered%28%29) methods may return true, indicating that the cell is being used or would be used for signaling communication if necessary.

Beginning with [Android Q](/reference/android/os/Build.VERSION%5FCODES#Q), if this API results in a change of the cached CellInfo, that change will be reported via[onCellInfoChanged()](/reference/android/telephony/TelephonyCallback.CellInfoListener#onCellInfoChanged%28java.util.List<android.telephony.CellInfo>%29).

Apps targeting [Android Q](/reference/android/os/Build.VERSION%5FCODES#Q) or higher will no longer trigger a refresh of the cached CellInfo by invoking this API. Instead, those apps will receive the latest cached results, which may not be current. Apps targeting[Android Q](/reference/android/os/Build.VERSION%5FCODES#Q) or higher that wish to request updated CellInfo should call[requestCellInfoUpdate()](/reference/android/telephony/TelephonyManager#requestCellInfoUpdate%28java.util.concurrent.Executor,%20android.telephony.TelephonyManager.CellInfoCallback%29); however, in all cases, updates will be rate-limited and are not guaranteed. To determine the recency of CellInfo data, callers should check[CellInfo#getTimeStamp()](/reference/android/telephony/CellInfo#getTimeStamp%28%29).

This method returns valid data for devices with[FEATURE_TELEPHONY](/reference/android/content/pm/PackageManager#FEATURE%5FTELEPHONY). In cases where only partial information is available for a particular CellInfo entry, unavailable fields will be reported as [CellInfo.UNAVAILABLE](/reference/android/telephony/CellInfo#UNAVAILABLE). All reported cells will include at least a valid set of technology-specific identification info and a power level measurement.

This method is preferred over using [getCellLocation()](/reference/android/telephony/TelephonyManager#getCellLocation%28%29).
Requires [Manifest.permission.ACCESS_FINE_LOCATION](/reference/android/Manifest.permission#ACCESS%5FFINE%5FLOCATION)
Requires the [PackageManager#FEATURE_TELEPHONY_RADIO_ACCESS](/reference/android/content/pm/PackageManager#FEATURE%5FTELEPHONY%5FRADIO%5FACCESS) feature which can be detected using [PackageManager.hasSystemFeature(String)](/reference/android/content/pm/PackageManager#hasSystemFeature%28java.lang.String%29).

Returns
List<CellInfo> List of CellInfo; null if cell information is unavailable.
Throws
UnsupportedOperationException If the device does not havePackageManager.FEATURE_TELEPHONY_RADIO_ACCESS.

getCarrierIdFromSimMccMnc

public int getCarrierIdFromSimMccMnc ()

Returns carrier id based on sim MCCMNC (returned by [getSimOperator()](/reference/android/telephony/TelephonyManager#getSimOperator%28%29)) only. This is used for fallback when configurations/logic for exact carrier id[getSimCarrierId()](/reference/android/telephony/TelephonyManager#getSimCarrierId%28%29) are not found. Android carrier id table here can be updated out-of-band, its possible a MVNO (Mobile Virtual Network Operator) carrier was not fully recognized and assigned to its MNO (Mobile Network Operator) carrier id by default. After carrier id table update, a new carrier id was assigned. If apps don't take the update with the new id, it might be helpful to always fallback by using carrier id based on MCCMNC if there is no match.
Requires the [PackageManager#FEATURE_TELEPHONY_SUBSCRIPTION](/reference/android/content/pm/PackageManager#FEATURE%5FTELEPHONY%5FSUBSCRIPTION) feature which can be detected using [PackageManager.hasSystemFeature(String)](/reference/android/content/pm/PackageManager#hasSystemFeature%28java.lang.String%29).

Returns
int matching carrier id from sim MCCMNC. Return UNKNOWN_CARRIER_ID if the subscription is unavailable or the carrier cannot be identified.
Throws
UnsupportedOperationException If the device does not havePackageManager.FEATURE_TELEPHONY_SUBSCRIPTION.

getDeviceId

public String getDeviceId ()

This method was deprecated in API level 26.
Use [getImei()](/reference/android/telephony/TelephonyManager#getImei%28%29) which returns IMEI for GSM or [getMeid()](/reference/android/telephony/TelephonyManager#getMeid%28%29) which returns MEID for CDMA.

Returns the unique device ID, for example, the IMEI for GSM and the MEID or ESN for CDMA phones. Return null if device ID is not available.

Starting with API level 29, persistent device identifiers are guarded behind additional restrictions, and apps are recommended to use resettable identifiers (see Best practices for unique identifiers). This method can be invoked if one of the following requirements is met:

If the calling app does not meet one of these requirements then this method will behave as follows:

.
Requires android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE

Returns
String

getDeviceId

public String getDeviceId (int slotIndex)

This method was deprecated in API level 26.
Use [getImei()](/reference/android/telephony/TelephonyManager#getImei%28%29) which returns IMEI for GSM or [getMeid()](/reference/android/telephony/TelephonyManager#getMeid%28%29) which returns MEID for CDMA.

Returns the unique device ID of a subscription, for example, the IMEI for GSM and the MEID for CDMA phones. Return null if device ID is not available.

Starting with API level 29, persistent device identifiers are guarded behind additional restrictions, and apps are recommended to use resettable identifiers (see Best practices for unique identifiers). This method can be invoked if one of the following requirements is met:

If the calling app does not meet one of these requirements then this method will behave as follows:

.
Requires android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE

Parameters
slotIndex int: of which deviceID is returned
Returns
String

getImei

public String getImei (int slotIndex)

Returns the IMEI (International Mobile Equipment Identity). Return null if IMEI is not available.

Starting with API level 29, persistent device identifiers are guarded behind additional restrictions, and apps are recommended to use resettable identifiers (see Best practices for unique identifiers). This method can be invoked if one of the following requirements is met:

If the calling app does not meet one of these requirements then this method will behave as follows:

.
Requires android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE

Parameters
slotIndex int: of which IMEI is returned
Returns
String

getImei

public String getImei ()

Returns the IMEI (International Mobile Equipment Identity). Return null if IMEI is not available. See [getImei(int)](/reference/android/telephony/TelephonyManager#getImei%28int%29) for details on the required permissions and behavior when the caller does not hold sufficient permissions.
Requires android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE

Returns
String

getMeid

public String getMeid ()

This method was deprecated in API level 36.
Legacy CDMA is unsupported.

Returns the MEID (Mobile Equipment Identifier). Return null if MEID is not available.

Starting with API level 29, persistent device identifiers are guarded behind additional restrictions, and apps are recommended to use resettable identifiers (see Best practices for unique identifiers). This method can be invoked if one of the following requirements is met:

If the calling app does not meet one of these requirements then this method will behave as follows:

.
Requires android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE.
Requires the [PackageManager#FEATURE_TELEPHONY_CDMA](/reference/android/content/pm/PackageManager#FEATURE%5FTELEPHONY%5FCDMA) feature which can be detected using [PackageManager.hasSystemFeature(String)](/reference/android/content/pm/PackageManager#hasSystemFeature%28java.lang.String%29).

Returns
String
Throws
UnsupportedOperationException If the device is running Android 25Q1 or earlier and does not havePackageManager.FEATURE_TELEPHONY_CDMA.

getMeid

public String getMeid (int slotIndex)

This method was deprecated in API level 36.
Legacy CDMA is unsupported.

Returns the MEID (Mobile Equipment Identifier). Return null if MEID is not available.

Starting with API level 29, persistent device identifiers are guarded behind additional restrictions, and apps are recommended to use resettable identifiers (see Best practices for unique identifiers). This method can be invoked if one of the following requirements is met:

If the calling app does not meet one of these requirements then this method will behave as follows:

.
Requires android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE.
Requires the [PackageManager#FEATURE_TELEPHONY_CDMA](/reference/android/content/pm/PackageManager#FEATURE%5FTELEPHONY%5FCDMA) feature which can be detected using [PackageManager.hasSystemFeature(String)](/reference/android/content/pm/PackageManager#hasSystemFeature%28java.lang.String%29).

Parameters
slotIndex int: of which MEID is returned
Returns
String
Throws
UnsupportedOperationException If the device does not havePackageManager.FEATURE_TELEPHONY_CDMA.

getNai

public String getNai ()

Returns the Network Access Identifier (NAI). Return null if NAI is not available.

Starting with API level 29, persistent device identifiers are guarded behind additional restrictions, and apps are recommended to use resettable identifiers (see Best practices for unique identifiers). This method can be invoked if one of the following requirements is met:

If the calling app does not meet one of these requirements then this method will behave as follows:

.
Requires android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE.
Requires the [PackageManager#FEATURE_TELEPHONY_SUBSCRIPTION](/reference/android/content/pm/PackageManager#FEATURE%5FTELEPHONY%5FSUBSCRIPTION) feature which can be detected using [PackageManager.hasSystemFeature(String)](/reference/android/content/pm/PackageManager#hasSystemFeature%28java.lang.String%29).

Returns
String
Throws
UnsupportedOperationException If the device does not havePackageManager.FEATURE_TELEPHONY_SUBSCRIPTION.

getPhoneCount

public int getPhoneCount ()

This method was deprecated in API level 30.
Use [getActiveModemCount()](/reference/android/telephony/TelephonyManager#getActiveModemCount%28%29) instead.

Returns the number of phones available.

Returns
int

getPrimaryImei

public String getPrimaryImei ()

Returns the primary IMEI (International Mobile Equipment Identity) of the device as mentioned in GSMA TS.37. [getImei(int)](/reference/android/telephony/TelephonyManager#getImei%28int%29) returns the IMEI that belongs to the selected slotID whereas this API [getPrimaryImei()](/reference/android/telephony/TelephonyManager#getPrimaryImei%28%29) returns primary IMEI of the device. A single SIM device with only one IMEI will be set by default as primary IMEI. A multi-SIM device with multiple IMEIs will have one of the IMEIs set as primary as mentioned in GSMA TS37_2.2_REQ_8.

Requires one of the following permissions

Returns
String Primary IMEI of type string. This value cannot be null.
Throws
SecurityException if the caller does not have the required permission/privileges

getSimSerialNumber

public String getSimSerialNumber ()

Returns the serial number of the SIM, if applicable. Return null if it is unavailable.

Starting with API level 29, persistent device identifiers are guarded behind additional restrictions, and apps are recommended to use resettable identifiers (see Best practices for unique identifiers). This method can be invoked if one of the following requirements is met:

If the calling app does not meet one of these requirements then this method will behave as follows:

.
Requires android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE.
Requires the [PackageManager#FEATURE_TELEPHONY_SUBSCRIPTION](/reference/android/content/pm/PackageManager#FEATURE%5FTELEPHONY%5FSUBSCRIPTION) feature which can be detected using [PackageManager.hasSystemFeature(String)](/reference/android/content/pm/PackageManager#hasSystemFeature%28java.lang.String%29).

Returns
String
Throws
UnsupportedOperationException If the device does not havePackageManager.FEATURE_TELEPHONY_SUBSCRIPTION.

getSimSpecificCarrierId

public int getSimSpecificCarrierId ()

Returns fine-grained carrier ID of the current subscription. A specific carrier ID can represent the fact that a carrier may be in effect an aggregation of other carriers (ie in an MVNO type scenario) where each of these specific carriers which are used to make up the actual carrier service may have different carrier configurations. A specific carrier ID could also be used, for example, in a scenario where a carrier requires different carrier configuration for different service offering such as a prepaid plan. the specific carrier ID would be used for configuration purposes, but apps wishing to know about the carrier itself should use the regular carrier ID returned by[getSimCarrierId()](/reference/android/telephony/TelephonyManager#getSimCarrierId%28%29). e.g, Tracfone SIMs could return different specific carrier ID based on IMSI from current subscription while carrier ID remains the same.

For carriers without fine-grained specific carrier ids, return [getSimCarrierId()](/reference/android/telephony/TelephonyManager#getSimCarrierId%28%29)

Specific carrier ids are defined in the same way as carrier idhere except each with a "parent" id linking to its top-level carrier id.
Requires the [PackageManager#FEATURE_TELEPHONY_SUBSCRIPTION](/reference/android/content/pm/PackageManager#FEATURE%5FTELEPHONY%5FSUBSCRIPTION) feature which can be detected using [PackageManager.hasSystemFeature(String)](/reference/android/content/pm/PackageManager#hasSystemFeature%28java.lang.String%29).

Returns
int Returns fine-grained carrier id of the current subscription. Return UNKNOWN_CARRIER_ID if the subscription is unavailable or the carrier cannot be identified.
Throws
UnsupportedOperationException If the device does not havePackageManager.FEATURE_TELEPHONY_SUBSCRIPTION.

getSubscriberId

public String getSubscriberId ()

Returns the unique subscriber ID, for example, the IMSI for a GSM phone. Return null if it is unavailable.

Starting with API level 29, persistent device identifiers are guarded behind additional restrictions, and apps are recommended to use resettable identifiers (see Best practices for unique identifiers). This method can be invoked if one of the following requirements is met:

If the calling app does not meet one of these requirements then this method will behave as follows:

.
Requires android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE.
Requires the [PackageManager#FEATURE_TELEPHONY_SUBSCRIPTION](/reference/android/content/pm/PackageManager#FEATURE%5FTELEPHONY%5FSUBSCRIPTION) feature which can be detected using [PackageManager.hasSystemFeature(String)](/reference/android/content/pm/PackageManager#hasSystemFeature%28java.lang.String%29).

Returns
String
Throws
UnsupportedOperationException If the device does not havePackageManager.FEATURE_TELEPHONY_SUBSCRIPTION.

getSupportedModemCount

public int getSupportedModemCount ()

Return how many logical modem can be potentially active simultaneously, in terms of hardware capability. It might return different value from [getActiveModemCount()](/reference/android/telephony/TelephonyManager#getActiveModemCount%28%29). For example, for a dual-SIM capable device operating in single SIM mode (only one logical modem is turned on),[getActiveModemCount()](/reference/android/telephony/TelephonyManager#getActiveModemCount%28%29) returns 1 while this API returns 2.

Returns
int

getTypeAllocationCode

public String getTypeAllocationCode ()

Returns the Type Allocation Code from the IMEI. Return null if Type Allocation Code is not available.

Returns
String

getTypeAllocationCode

public String getTypeAllocationCode (int slotIndex)

Returns the Type Allocation Code from the IMEI. Return null if Type Allocation Code is not available.

Parameters
slotIndex int: of which Type Allocation Code is returned
Returns
String

iccTransmitApduLogicalChannel

public String iccTransmitApduLogicalChannel (int channel, int cla, int instruction, int p1, int p2, int p3, String data)

Transmit an APDU to the ICC card over a logical channel. Input parameters equivalent to TS 27.007 AT+CGLA command. It is strongly recommended that callers of this API should firstly create a new TelephonyManager instance by calling[TelephonyManager.createForSubscriptionId(int)](/reference/android/telephony/TelephonyManager#createForSubscriptionId%28int%29). Failure to do so can result in unpredictable and detrimental behavior like callers can end up talking to the wrong SIM card.

Requires Permission:[MODIFY_PHONE_STATE](/reference/android/Manifest.permission#MODIFY%5FPHONE%5FSTATE) or that the calling app has carrier privileges (see [hasCarrierPrivileges()](/reference/android/telephony/TelephonyManager#hasCarrierPrivileges%28%29)).
Requires the [PackageManager#FEATURE_TELEPHONY_SUBSCRIPTION](/reference/android/content/pm/PackageManager#FEATURE%5FTELEPHONY%5FSUBSCRIPTION) feature which can be detected using [PackageManager.hasSystemFeature(String)](/reference/android/content/pm/PackageManager#hasSystemFeature%28java.lang.String%29).

Parameters
channel int: is the channel id to be closed as returned by a successful iccOpenLogicalChannel.
cla int: Class of the APDU command.
instruction int: Instruction of the APDU command.
p1 int: P1 value of the APDU command.
p2 int: P2 value of the APDU command.
p3 int: P3 value of the APDU command. If p3 is negative a 4 byte APDU is sent to the SIM.
data String: Data to be sent with the APDU.
Returns
String The APDU response from the ICC card with the status appended at the end.
Throws
UnsupportedOperationException If the device does not havePackageManager.FEATURE_TELEPHONY_SUBSCRIPTION.

isDataCapable

public boolean isDataCapable ()

Returns
boolean true if the current device is "data capable" over a radio on the device. "Data capable" means that this device supports packet-switched data connections over the telephony network.

isDeviceSmsCapable

public boolean isDeviceSmsCapable ()

Returns
boolean true if the current device supports SMS service. If true, this means that the device supports both sending and receiving SMS via the telephony network. Note: Voicemail waiting SMS, cell broadcasting SMS, and MMS are disabled when device doesn't support SMS. Starting from Android 15, SMS capability may also be overridden by carriers for a given subscription on an SMS capable device. To check if a subscription is "SMS capable", call method SubscriptionInfo.getServiceCapabilities() and check ifSubscriptionManager.SERVICE_CAPABILITY_SMS is included.

isDeviceVoiceCapable

public boolean isDeviceVoiceCapable ()

Returns
boolean true if the current device is "voice capable". "Voice capable" means that this device supports circuit-switched or IMS packet switched (i.e. voice) phone calls over the telephony network, and is allowed to display the in-call UI while a cellular voice call is active. This will be false on "data only" devices which can't make voice calls and don't support any in-call UI. Note: the meaning of this flag is subtly different from the PackageManager .FEATURE_TELEPHONY system feature, which is available on any device with a telephony radio, even if the device is data-only. Starting from Android 15, voice capability may also be overridden by carrier for a given subscription on a voice capable device. To check if a subscription is "voice capable", call method SubscriptionInfo.getServiceCapabilities() and check ifSubscriptionManager.SERVICE_CAPABILITY_VOICE is included.

isEmergencyNumber

public boolean isEmergencyNumber (String number)

Identifies if the supplied phone number is an emergency number that matches a known emergency number based on current locale, SIM card(s), Android database, modem, network, or defaults.

This method assumes that only dialable phone numbers are passed in; non-dialable numbers are not considered emergency numbers. A dialable phone number consists only of characters/digits identified by [PhoneNumberUtils.isDialable(char)](/reference/android/telephony/PhoneNumberUtils#isDialable%28char%29).

The subscriptions which the identification would be based on, are all the active subscriptions, no matter which subscription could be used to create TelephonyManager.

Parameters
number String: - the number to look up. This value cannot be null.
Returns
boolean true if the given number is an emergency number based on current locale, SIM card(s), Android database, modem, network or defaults; false otherwise.
Throws
IllegalStateException if the Telephony process is not currently available.
UnsupportedOperationException If the device does not havePackageManager.FEATURE_TELEPHONY_CALLING orPackageManager.FEATURE_TELEPHONY_MESSAGING.

isSmsCapable

public boolean isSmsCapable ()

This method was deprecated in API level 35.
Replaced by [isDeviceSmsCapable()](/reference/android/telephony/TelephonyManager#isDeviceSmsCapable%28%29). Starting from Android 15, SMS capability may also be overridden by carriers for a given subscription. For SMS capable device (when [isDeviceSmsCapable()](/reference/android/telephony/TelephonyManager#isDeviceSmsCapable%28%29) return true), caller should check for subscription-level SMS capability as well. See [isDeviceSmsCapable()](/reference/android/telephony/TelephonyManager#isDeviceSmsCapable%28%29) for details.

Returns
boolean true if the current device supports sms service. If true, this means that the device supports both sending and receiving sms via the telephony network. Note: Voicemail waiting sms, cell broadcasting sms, and MMS are disabled when device doesn't support sms.

isTtyModeSupported

public boolean isTtyModeSupported ()

This method was deprecated in API level 28.
Use [TelecomManager.isTtySupported()](/reference/android/telecom/TelecomManager#isTtySupported%28%29) instead Whether the phone supports TTY mode.

Returns
boolean true if the device supports TTY mode, and false otherwise.

isVoiceCapable

public boolean isVoiceCapable ()

This method was deprecated in API level 35.
Replaced by [isDeviceVoiceCapable()](/reference/android/telephony/TelephonyManager#isDeviceVoiceCapable%28%29). Starting from Android 15, voice capability may also be overridden by carriers for a given subscription. For voice capable device (when [isDeviceVoiceCapable()](/reference/android/telephony/TelephonyManager#isDeviceVoiceCapable%28%29) return true), caller should check for subscription-level voice capability as well. See [isDeviceVoiceCapable()](/reference/android/telephony/TelephonyManager#isDeviceVoiceCapable%28%29) for details.

Returns
boolean true if the current device is "voice capable". "Voice capable" means that this device supports circuit-switched (i.e. voice) phone calls over the telephony network, and is allowed to display the in-call UI while a cellular voice call is active. This will be false on "data only" devices which can't make voice calls and don't support any in-call UI. Note: the meaning of this flag is subtly different from the PackageManager.FEATURE_TELEPHONY system feature, which is available on any device with a telephony radio, even if the device is data-only.

listen

public void listen (PhoneStateListener listener, int events)

This method was deprecated in API level 31.
Use [registerTelephonyCallback(Executor,TelephonyCallback)](/reference/android/telephony/TelephonyManager#registerTelephonyCallback%28java.util.concurrent.Executor,%20android.telephony.TelephonyCallback%29).

Registers a listener object to receive notification of changes in specified telephony states.

To register a listener, pass a [PhoneStateListener](/reference/android/telephony/PhoneStateListener) and specify at least one telephony state of interest in the events argument. At registration, and when a specified telephony state changes, the telephony manager invokes the appropriate callback method on the listener object and passes the current (updated) values.

To un-register a listener, pass the listener object and set the events argument to[LISTEN_NONE](/reference/android/telephony/PhoneStateListener#LISTEN%5FNONE) (0). If this TelephonyManager object has been created with [createForSubscriptionId(int)](/reference/android/telephony/TelephonyManager#createForSubscriptionId%28int%29), applies to the given subId. Otherwise, applies to[SubscriptionManager.getDefaultSubscriptionId()](/reference/android/telephony/SubscriptionManager#getDefaultSubscriptionId%28%29). To listen events for multiple subIds, pass a separate listener object to each TelephonyManager object created with[createForSubscriptionId(int)](/reference/android/telephony/TelephonyManager#createForSubscriptionId%28int%29). Note: if you call this method while in the middle of a binder transaction, you must call [Binder.clearCallingIdentity()](/reference/android/os/Binder#clearCallingIdentity%28%29) before calling this method. A[SecurityException](/reference/java/lang/SecurityException) will be thrown otherwise. This API should be used sparingly -- large numbers of listeners will cause system instability. If a process has registered too many listeners without unregistering them, it may encounter an [IllegalStateException](/reference/java/lang/IllegalStateException) when trying to register more listeners.

Parameters
listener PhoneStateListener: The PhoneStateListener object to register (or unregister)
events int: The telephony state(s) of interest to the listener, as a bitwise-OR combination of PhoneStateListener LISTEN_ flags.

registerTelephonyCallback

public void registerTelephonyCallback (Executor executor, TelephonyCallback callback)

Registers a callback object to receive notification of changes in specified telephony states.

To register a callback, pass a [TelephonyCallback](/reference/android/telephony/TelephonyCallback) which implements interfaces of events. For example, FakeServiceStateCallback extends [TelephonyCallback](/reference/android/telephony/TelephonyCallback) implements[TelephonyCallback.ServiceStateListener](/reference/android/telephony/TelephonyCallback.ServiceStateListener). At registration, and when a specified telephony state changes, the telephony manager invokes the appropriate callback method on the callback object and passes the current (updated) values.

Note: Be aware of the permission requirements stated on the [TelephonyCallback](/reference/android/telephony/TelephonyCallback) listeners you implement. Your application must be granted these permissions in order to register a [TelephonyCallback](/reference/android/telephony/TelephonyCallback) which requires them; a [SecurityException](/reference/java/lang/SecurityException) will be thrown if you do not hold the required permissions for all [TelephonyCallback](/reference/android/telephony/TelephonyCallback) listeners you implement.

If this TelephonyManager object has been created with [createForSubscriptionId(int)](/reference/android/telephony/TelephonyManager#createForSubscriptionId%28int%29), applies to the given subId. Otherwise, applies to[SubscriptionManager.getDefaultSubscriptionId()](/reference/android/telephony/SubscriptionManager#getDefaultSubscriptionId%28%29). To register events for multiple subIds, pass a separate callback object to each TelephonyManager object created with[createForSubscriptionId(int)](/reference/android/telephony/TelephonyManager#createForSubscriptionId%28int%29). Note: if you call this method while in the middle of a binder transaction, you must call [Binder.clearCallingIdentity()](/reference/android/os/Binder#clearCallingIdentity%28%29) before calling this method. A[SecurityException](/reference/java/lang/SecurityException) will be thrown otherwise. This API should be used sparingly -- large numbers of callbacks will cause system instability. If a process has registered too many callbacks without unregistering them, it may encounter an [IllegalStateException](/reference/java/lang/IllegalStateException) when trying to register more callbacks.

Parameters
executor Executor: The executor of where the callback will execute. This value cannot be null. 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 an Executor that dispatches to an appropriate thread.
callback TelephonyCallback: The TelephonyCallback object to register. The caller should hold a reference to the callback. The framework only holds a weak reference. This value cannot be null.

registerTelephonyCallback

public void registerTelephonyCallback (int includeLocationData, Executor executor, TelephonyCallback callback)

Registers a callback object to receive notification of changes in specified telephony states.

To register a callback, pass a [TelephonyCallback](/reference/android/telephony/TelephonyCallback) which implements interfaces of events. For example, FakeServiceStateCallback extends [TelephonyCallback](/reference/android/telephony/TelephonyCallback) implements[TelephonyCallback.ServiceStateListener](/reference/android/telephony/TelephonyCallback.ServiceStateListener). At registration, and when a specified telephony state changes, the telephony manager invokes the appropriate callback method on the callback object and passes the current (updated) values.

If this TelephonyManager object has been created with [createForSubscriptionId(int)](/reference/android/telephony/TelephonyManager#createForSubscriptionId%28int%29), applies to the given subId. Otherwise, applies to[SubscriptionManager.getDefaultSubscriptionId()](/reference/android/telephony/SubscriptionManager#getDefaultSubscriptionId%28%29). To register events for multiple subIds, pass a separate callback object to each TelephonyManager object created with[createForSubscriptionId(int)](/reference/android/telephony/TelephonyManager#createForSubscriptionId%28int%29). Note: if you call this method while in the middle of a binder transaction, you must call [Binder.clearCallingIdentity()](/reference/android/os/Binder#clearCallingIdentity%28%29) before calling this method. A[SecurityException](/reference/java/lang/SecurityException) will be thrown otherwise. This API should be used sparingly -- large numbers of callbacks will cause system instability. If a process has registered too many callbacks without unregistering them, it may encounter an [IllegalStateException](/reference/java/lang/IllegalStateException) when trying to register more callbacks.

There's another way to renounce permissions with a custom contextAttributionSource.Builder#setRenouncedPermissions(Set<String>) but only for system apps. To avoid confusion, calling this method supersede renouncing permissions with a custom context.

Parameters
includeLocationData int: Specifies if the caller would like to receive location related information. Value is one of the following: INCLUDE_LOCATION_DATA_NONE INCLUDE_LOCATION_DATA_COARSE INCLUDE_LOCATION_DATA_FINE
executor Executor: The executor of where the callback will execute. This value cannot be null. 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 an Executor that dispatches to an appropriate thread.
callback TelephonyCallback: The TelephonyCallback object to register. The caller should hold a reference to the callback. The framework only holds a weak reference. This value cannot be null.

sendVisualVoicemailSms

public void sendVisualVoicemailSms (String number, int port, String text, PendingIntent sentIntent)

Send a visual voicemail SMS. The caller must be the current default dialer. A [VisualVoicemailService](/reference/android/telephony/VisualVoicemailService) uses this method to send a command via SMS to the carrier's visual voicemail server. Some examples for carriers using the OMTP standard include activating and deactivating visual voicemail, or requesting the current visual voicemail provisioning status. See the OMTP Visual Voicemail specification for more information on the format of these SMS messages.

Requires Permission:[SEND_SMS](/reference/android/Manifest.permission#SEND%5FSMS)
Requires the [PackageManager#FEATURE_TELEPHONY_CALLING](/reference/android/content/pm/PackageManager#FEATURE%5FTELEPHONY%5FCALLING) feature which can be detected using [PackageManager.hasSystemFeature(String)](/reference/android/content/pm/PackageManager#hasSystemFeature%28java.lang.String%29).

Parameters
number String: The destination number.
port int: The destination port for data SMS, or 0 for text SMS.
text String: The message content. For data sms, it will be encoded as a UTF-8 byte stream.
sentIntent PendingIntent: The sent intent passed to the SmsManager
Throws
SecurityException if the caller is not the current default dialer
UnsupportedOperationException If the device does not havePackageManager.FEATURE_TELEPHONY_CALLING.

See also:

setForbiddenPlmns

public int setForbiddenPlmns (List<String> fplmns)

Replace the contents of the forbidden PLMN SIM file with the provided values. Passing an empty list will clear the contents of the EFfplmn file. If the provided list is shorter than the size of EFfplmn, then the list will be padded up to the file size with 'FFFFFF'. (required by 3GPP TS 31.102 spec 4.2.16) If the list is longer than the size of EFfplmn, then the file will be written from the beginning of the list up to the file size.

Requires Permission: [MODIFY_PHONE_STATE](/reference/android/Manifest.permission#MODIFY%5FPHONE%5FSTATE) or that the calling app has carrier privileges (see [hasCarrierPrivileges()](/reference/android/telephony/TelephonyManager#hasCarrierPrivileges%28%29)).
Requires [Manifest.permission.MODIFY_PHONE_STATE](/reference/android/Manifest.permission#MODIFY%5FPHONE%5FSTATE)
Requires the [PackageManager#FEATURE_TELEPHONY_SUBSCRIPTION](/reference/android/content/pm/PackageManager#FEATURE%5FTELEPHONY%5FSUBSCRIPTION) feature which can be detected using [PackageManager.hasSystemFeature(String)](/reference/android/content/pm/PackageManager#hasSystemFeature%28java.lang.String%29).

Parameters
fplmns List: a list of PLMNs to be forbidden. This value cannot be null.
Returns
int number of PLMNs that were successfully written to the SIM FPLMN list. This may be less than the number of PLMNs passed in where the SIM file does not have enough room for all of the values passed in. Return -1 in the event of an unexpected failure
Throws
UnsupportedOperationException If the device does not havePackageManager.FEATURE_TELEPHONY_SUBSCRIPTION.

setNetworkSelectionModeManual

public boolean setNetworkSelectionModeManual (String operatorNumeric, boolean persistSelection, int ran)

Ask the radio to connect to the input network and change selection mode to manual.

If this object has been created with [createForSubscriptionId(int)](/reference/android/telephony/TelephonyManager#createForSubscriptionId%28int%29), applies to the given subId. Otherwise, applies to [SubscriptionManager.getDefaultSubscriptionId()](/reference/android/telephony/SubscriptionManager#getDefaultSubscriptionId%28%29)

Requires Permission:[MODIFY_PHONE_STATE](/reference/android/Manifest.permission#MODIFY%5FPHONE%5FSTATE) or that the calling app has carrier privileges (see [hasCarrierPrivileges()](/reference/android/telephony/TelephonyManager#hasCarrierPrivileges%28%29)).
Requires [Manifest.permission.MODIFY_PHONE_STATE](/reference/android/Manifest.permission#MODIFY%5FPHONE%5FSTATE)
Requires the [PackageManager#FEATURE_TELEPHONY_RADIO_ACCESS](/reference/android/content/pm/PackageManager#FEATURE%5FTELEPHONY%5FRADIO%5FACCESS) feature which can be detected using [PackageManager.hasSystemFeature(String)](/reference/android/content/pm/PackageManager#hasSystemFeature%28java.lang.String%29).

Parameters
operatorNumeric String: the PLMN ID of the network to select. This value cannot be null.
persistSelection boolean: whether the selection will persist until reboot. If true, only allows attaching to the selected PLMN until reboot; otherwise, attach to the chosen PLMN and resume normal network selection next time.
ran int: the initial suggested radio access network type. If registration fails, the RAN is not available after, the RAN is not within the network types specified by the preferred network types, or the value isAccessNetworkConstants.AccessNetworkType.UNKNOWN, modem will select the next best RAN for network registration. Value is one of the following: AccessNetworkConstants.AccessNetworkType.UNKNOWN AccessNetworkConstants.AccessNetworkType.GERAN AccessNetworkConstants.AccessNetworkType.UTRAN AccessNetworkConstants.AccessNetworkType.EUTRAN AccessNetworkConstants.AccessNetworkType.CDMA2000 AccessNetworkConstants.AccessNetworkType.IWLAN AccessNetworkConstants.AccessNetworkType.NGRAN
Returns
boolean true on success; false on any failure.
Throws
UnsupportedOperationException If the device does not havePackageManager.FEATURE_TELEPHONY_RADIO_ACCESS.

uploadCallComposerPicture

public void uploadCallComposerPicture (InputStream pictureToUpload, String contentType, Executor executor, OutcomeReceiver<ParcelUuidTelephonyManager.CallComposerException> callback)

Uploads a picture to the carrier network for use with call composer. This method allows a dialer app to upload a picture to the carrier network that can then later be attached to an outgoing call. In order to attach the picture to a call, use the[ParcelUuid](/reference/android/os/ParcelUuid) returned from callback upon successful upload as the value to[TelecomManager.EXTRA_OUTGOING_PICTURE](/reference/android/telecom/TelecomManager#EXTRA%5FOUTGOING%5FPICTURE). This functionality is only available to the app filling the [RoleManager.ROLE_DIALER](/reference/android/app/role/RoleManager#ROLE%5FDIALER) role on the device. This functionality is only available when[CarrierConfigManager.KEY_SUPPORTS_CALL_COMPOSER_BOOL](/reference/android/telephony/CarrierConfigManager#KEY%5FSUPPORTS%5FCALL%5FCOMPOSER%5FBOOL) is set to true in the bundle returned from [getCarrierConfig()](/reference/android/telephony/TelephonyManager#getCarrierConfig%28%29).
Requires the [PackageManager#FEATURE_TELEPHONY_CALLING](/reference/android/content/pm/PackageManager#FEATURE%5FTELEPHONY%5FCALLING) feature which can be detected using [PackageManager.hasSystemFeature(String)](/reference/android/content/pm/PackageManager#hasSystemFeature%28java.lang.String%29).

Parameters
pictureToUpload InputStream: An InputStream that supplies the bytes representing the picture to upload. The client bears responsibility for closing this stream after callback is called with success or failure. Additionally, if the stream supplies more bytes than the return value of getMaximumCallComposerPictureSize(), the upload will be aborted and the callback will be called with an exception containingCallComposerException.ERROR_FILE_TOO_LARGE. This value cannot be null.
contentType String: The MIME type of the picture you're uploading (e.g. image/jpeg). The list of acceptable content types can be found at 3GPP TS 26.141 sections 4.2 and 4.3. This value cannot be null.
executor Executor: The Executor on which the pictureToUpload stream will be read, as well as on which the callback will be called. 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 an Executor that dispatches to an appropriate thread. This value cannot be null.
callback OutcomeReceiver: A callback called when the upload operation terminates, either in success or in error. This value cannot be null.
Throws
UnsupportedOperationException If the device does not havePackageManager.FEATURE_TELEPHONY_CALLING.