Network Data and Metrics

Methods mentioned in this section call upon the relevant methods on Android's TelephonyManager class.

Check Android Develop Docs for more details on how these methods function.

isSmsCapable

Returns Future<bool>

Checks if the device has necessary features to send and receive SMS.

bool isSmsCapable = await telephony.isSmsCapable;

cellularDataState

Returns Future<DataState>

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

DataState state = await telephony.cellularDataState;

callState

Returns Future<CallState>

Returns a constant that represents the current state of all phone calls.

CallState state = await telephony.callState;

dataActivity

Returns Future<DataActivity>

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

DataActivity activity = await telephony.dataActivity;

networkOperator

Returns Future<String>

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

Availability: Only when user is registered to a network.

Result may be unreliable on CDMA networks (use phoneType to determine if on a CDMA network).

String networkOperator = await telephony.networkOperator;

networkOperatorName

Returns Future<String>

Returns the alphabetic name of current registered operator.

Availability: Only when user is registered to a network.

Result may be unreliable on CDMA networks (use phoneType to determine if on a CDMA network).

String operatorName = await telephony.networkOperatorName;

dataNetworkType

Returns Future<NetworkType>

Requires READ_PHONE_STATE permission.

Add the following in your AndroidManifest.xml

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

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

NetworkType type = await telephony.dataNetworkType;

phoneType

Returns Future<PhoneType>

Returns a constant indicating the device phone type. This indicates the type of radio used to transmit voice calls.

PhoneType type = await telephony.phoneType;

simOperator

Returns Future<String>

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

Availability: SimState must be SIM_STATE_READY

String simOperator = await telephony.simOperator;

simOperatorName

Returns Future<String>

Returns the Service Provider Name (SPN).

Availability: SimState must be SIM_STATE_READY

String simOperatorName = await telephony.simOperatorName;

simState

Returns Future<SimState>

Returns a constant indicating the state of the default SIM card.

SimState state = await telephony.simState;

isNetworkRoaming

Returns Future<bool>

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

Availability: Only when user registered to a network.

bool isNetworkRoaming = await telephony.isNetworkRoaming;

signalStrengths

Returns Future<List<SignalStrength>>

Requires Android build version 29 --> Android Q

Returns a List of SignalStrength or an empty List if there are no valid measurements.

List<SignalStrength> strenghts = await telephony.signalStrengths;

serviceState

Returns Future<ServiceState>

Requires Android build version 26 --> Android O

Requires permissions ACCESS_COARSE_LOCATION and READ_PHONE_STATE

Add the following in your AndroidManifest.xml

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

Returns current voice service state.

ServiceState state = await telephony.serviceState;

DataState

Values

DISCONNECTED

CONNECTING

CONNECTED

SUSPENDED

UNKNOWN

CallState

Values

IDLE

RINGING

OFFHOOK

DataActivity

Values

NONE

IN

OUT

INOUT

DORMANT

NetworkType

Values

UNKNOWN

GPRS

EDGE

UMTS

CDMA

EVDO_0

EVDO_A

TYPE_1xRTT

HSDPA

HSUPA

HSPA

IDEN

EVDO_B

LTE

EHRPD

HSPAP

GSM

TD_SCDMA

IWLAN

LTE_CA

NR

PhoneType

Values

NONE

GSM

CDMS

SIP

SimState

Values

UNKNOWN

ABSENT

PIN_REQUIRED

PUK_REQUIRED

NETWORK_LOCKED

READY

NOT_READY

PERM_DISABLED

CARD_IO_ERROR

CARD_RESTRICTED

LOADED

PRESENT

SignalStrength

Values

NONE_OR_UNKNOWN

POOR

MODERATE

GOOD

GREAT

ServiceState

Values

IN_SERVICE

OUT_OF_SERVICE

EMERGENCY_ONLY

POWER_OFF

‚Äč