public class

TelephonyManager

extends Object
java.lang.Object
   ↳ android.telephony.TelephonyManager

Class Overview

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.

You do not instantiate this class directly; instead, you retrieve a reference to an instance through Context.getSystemService(Context.TELEPHONY_SERVICE).

Note that acess 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 the methods through which you access the protected information.

Summary

Constants
String ACTION_PHONE_STATE_CHANGED Broadcast intent action indicating that the call state (cellular) on the device has changed.
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.
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_SUSPENDED Data connection state: Suspended.
String EXTRA_INCOMING_NUMBER The lookup key used with the ACTION_PHONE_STATE_CHANGED broadcast for a String containing the incoming phone number.
String EXTRA_STATE The lookup key used with the ACTION_PHONE_STATE_CHANGED broadcast for a String containing the new call state.
String EXTRA_STATE_IDLE Value used with EXTRA_STATE corresponding to CALL_STATE_IDLE.
String EXTRA_STATE_OFFHOOK Value used with EXTRA_STATE corresponding to CALL_STATE_OFFHOOK.
String EXTRA_STATE_RINGING Value used with EXTRA_STATE corresponding to CALL_STATE_RINGING.
int NETWORK_TYPE_EDGE Current network is EDGE
int NETWORK_TYPE_GPRS Current network is GPRS
int NETWORK_TYPE_UMTS Current network is UMTS
int NETWORK_TYPE_UNKNOWN Network type is unknown
int PHONE_TYPE_GSM GSM phone
int PHONE_TYPE_NONE No phone module
int SIM_STATE_ABSENT SIM card state: no SIM card is available in the device
int SIM_STATE_NETWORK_LOCKED SIM card state: Locked: requries a network PIN to unlock
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.
Public Methods
int getCallState()
Returns a constant indicating the call state (cellular) on the device.
CellLocation getCellLocation()
Returns the current location of the device.
int getDataActivity()
Returns a constant indicating the type of activity on a data connection (cellular).
int getDataState()
Returns a constant indicating the current data connection state (cellular).
String getDeviceId()
Returns the unique device ID, for example,the IMEI for GSM phones.
String getDeviceSoftwareVersion()
Returns the software version number for the device, for example, the IMEI/SV for GSM phones.
String getLine1Number()
Returns the phone number string for line 1, for example, the MSISDN for a GSM phone.
List<NeighboringCellInfo> getNeighboringCellInfo()
Returns the neighboring cell information of the device.
String getNetworkCountryIso()
Returns the ISO country code equivilent of the current registered operator's MCC (Mobile Country Code).
String getNetworkOperator()
Returns the numeric name (MCC+MNC) of current registered operator.
String getNetworkOperatorName()
Returns the alphabetic name of current registered operator.
int getNetworkType()
Returns a constant indicating the radio technology (network type) currently in use on the device.
int getPhoneType()
Returns a constant indicating the device phone type.
String getSimCountryIso()
Returns the ISO 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 getSimState()
Returns a constant indicating the state of the device SIM card.
String getSubscriberId()
Returns the unique subscriber ID, for example, the IMSI for a GSM phone.
String getVoiceMailAlphaTag()
Retrieves the alphabetic identifier associated with the voice mail number.
String getVoiceMailNumber()
Returns the voice mail number.
boolean isNetworkRoaming()
Returns true if the device is considered roaming on the current network, for GSM purposes.
void listen(PhoneStateListener listener, int events)
Registers a listener object to receive notification of changes in specified telephony states.
[Expand]
Inherited Methods
From class java.lang.Object

Constants

public static final String ACTION_PHONE_STATE_CHANGED

Broadcast intent action indicating that the call state (cellular) on the device has changed.

The EXTRA_STATE extra indicates the new call state. If the new state is RINGING, a second extra EXTRA_INCOMING_NUMBER provides the incoming phone number as a String.

Requires the READ_PHONE_STATE permission.

This was a sticky broadcast in version 1.0, but it is no longer sticky. Instead, use getCallState() to synchronously query the current call state.

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

public static final int CALL_STATE_IDLE

Device call state: No activity.

Constant Value: 0 (0x00000000)

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)

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)

public static final int DATA_ACTIVITY_IN

Data connection activity: Currently receiving IP PPP traffic.

Constant Value: 1 (0x00000001)

public static final int DATA_ACTIVITY_INOUT

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

Constant Value: 3 (0x00000003)

public static final int DATA_ACTIVITY_NONE

Data connection activity: No traffic.

Constant Value: 0 (0x00000000)

public static final int DATA_ACTIVITY_OUT

Data connection activity: Currently sending IP PPP traffic.

Constant Value: 2 (0x00000002)

public static final int DATA_CONNECTED

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

Constant Value: 2 (0x00000002)

public static final int DATA_CONNECTING

Data connection state: Currently setting up a data connection.

Constant Value: 1 (0x00000001)

public static final int DATA_DISCONNECTED

Data connection state: Disconnected. IP traffic not available.

Constant Value: 0 (0x00000000)

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)

public static final String EXTRA_INCOMING_NUMBER

The lookup key used with the ACTION_PHONE_STATE_CHANGED broadcast for a String containing the incoming phone number. Only valid when the new call state is RINGING.

Retrieve with getStringExtra(String).

Constant Value: "incoming_number"

public static final String EXTRA_STATE

The lookup key used with the ACTION_PHONE_STATE_CHANGED broadcast for a String containing the new call state.

Constant Value: "state"

public static final String EXTRA_STATE_IDLE

Value used with EXTRA_STATE corresponding to CALL_STATE_IDLE.

public static final String EXTRA_STATE_OFFHOOK

Value used with EXTRA_STATE corresponding to CALL_STATE_OFFHOOK.

public static final String EXTRA_STATE_RINGING

Value used with EXTRA_STATE corresponding to CALL_STATE_RINGING.

public static final int NETWORK_TYPE_EDGE

Current network is EDGE

Constant Value: 2 (0x00000002)

public static final int NETWORK_TYPE_GPRS

Current network is GPRS

Constant Value: 1 (0x00000001)

public static final int NETWORK_TYPE_UMTS

Current network is UMTS

Constant Value: 3 (0x00000003)

public static final int NETWORK_TYPE_UNKNOWN

Network type is unknown

Constant Value: 0 (0x00000000)

public static final int PHONE_TYPE_GSM

GSM phone

Constant Value: 1 (0x00000001)

public static final int PHONE_TYPE_NONE

No phone module

Constant Value: 0 (0x00000000)

public static final int SIM_STATE_ABSENT

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

Constant Value: 1 (0x00000001)

public static final int SIM_STATE_NETWORK_LOCKED

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

Constant Value: 4 (0x00000004)

public static final int SIM_STATE_PIN_REQUIRED

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

Constant Value: 2 (0x00000002)

public static final int SIM_STATE_PUK_REQUIRED

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

Constant Value: 3 (0x00000003)

public static final int SIM_STATE_READY

SIM card state: Ready

Constant Value: 5 (0x00000005)

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.

Constant Value: 0 (0x00000000)

Public Methods

public int getCallState ()

Returns a constant indicating the call state (cellular) on the device.

public CellLocation getCellLocation ()

Returns the current location of the device.

Requires Permission: ACCESS_COARSE_LOCATION.

public int getDataActivity ()

Returns a constant indicating the type of activity on a data connection (cellular).

public int getDataState ()

Returns a constant indicating the current data connection state (cellular).

public String getDeviceId ()

Returns the unique device ID, for example,the IMEI for GSM phones.

Requires Permission: READ_PHONE_STATE

public String getDeviceSoftwareVersion ()

Returns the software version number for the device, for example, the IMEI/SV for GSM phones.

Requires Permission: READ_PHONE_STATE

public String getLine1Number ()

Returns the phone number string for line 1, for example, the MSISDN for a GSM phone.

Requires Permission: READ_PHONE_STATE

public List<NeighboringCellInfo> getNeighboringCellInfo ()

Returns the neighboring cell information of the device.

Returns
  • List of NeighboringCellInfo or null if info unavailable.

    Requires Permission: (@link android.Manifest.permission#ACCESS_COARSE_UPDATES}

public String getNetworkCountryIso ()

Returns the ISO country code equivilent of the current registered operator's MCC (Mobile Country Code).

Availability: Only when user is registered to a network

public String getNetworkOperator ()

Returns the numeric name (MCC+MNC) of current registered operator.

Availability: Only when user is registered to a network

public String getNetworkOperatorName ()

Returns the alphabetic name of current registered operator.

Availability: Only when user is registered to a network

public int getNetworkType ()

Returns a constant indicating the radio technology (network type) currently in use on the device.

Returns
  • the network type

public int getPhoneType ()

Returns a constant indicating the device phone type.

public String getSimCountryIso ()

Returns the ISO country code equivalent for the SIM provider's country code.

public String getSimOperator ()

Returns the MCC+MNC (mobile country code + mobile network code) of the provider of the SIM. 5 or 6 decimal digits.

Availability: SIM state must be SIM_STATE_READY

See Also

public String getSimOperatorName ()

Returns the Service Provider Name (SPN).

Availability: SIM state must be SIM_STATE_READY

See Also

public String getSimSerialNumber ()

Returns the serial number of the SIM, if applicable.

Requires Permission: READ_PHONE_STATE

public int getSimState ()

public String getSubscriberId ()

Returns the unique subscriber ID, for example, the IMSI for a GSM phone.

Requires Permission: READ_PHONE_STATE

public String getVoiceMailAlphaTag ()

Retrieves the alphabetic identifier associated with the voice mail number.

Requires Permission: READ_PHONE_STATE

public String getVoiceMailNumber ()

Returns the voice mail number.

Requires Permission: READ_PHONE_STATE

public boolean isNetworkRoaming ()

Returns true if the device is considered roaming on the current network, for GSM purposes.

Availability: Only when user registered to a network

public void listen (PhoneStateListener listener, int events)

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

To register a listener, pass a 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 (udpated) values.

To unregister a listener, pass the listener object and set the events argument to LISTEN_NONE (0).

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