Emergency calling is fundamental and critical for devices because they must work for Android users while satisfying various carrier and regulatory requirements all over the world. The Android framework provides users with a fast and safe emergency calling experience.
Android 10 provides improved support for emergency call functions, maintenance, and updates in the local Android platform by using a detailed emergency number list from the SIM, network, modem, and database. Android 10 also supports emergency calling based on the type of emergency services such as police, fire, or ambulance. Android 10 provides improved support for multi-SIM devices by sharing emergency numbers from multiple subscriptions in the TelephonyManager API.
In Android 10 with Radio HAL 1.4, emergency calling is improved by separating emergency calls from normal calls in the HAL interface to optimize the emergency calling path and allowing devices to dial the appropriate emergency number configured in the Android database.
To implement the emergency calling and emergency number functions, implement
and hardware interface APIs.
Implement the following APIs:
getEmergencyNumberListto get valid emergency numbers for emergency calling based on the emergency number source including the locale, SIM cards, default, modem, Android database, and network. For each emergency number, specify the corresponding emergency service category such as police, ambulance, and fire.
isEmergencyNumberto identify whether a phone number is an emergency number.
isPotentialEmergencyNumberto identify a number as an emergency number if it has the same starting digits as any of the emergency numbers.
The values for emergency number sources are:
EMERGENCY_NUMBER_SOURCE_NETWORK_SIGNALING: Number is from the network signal
EMERGENCY_NUMBER_SOURCE_SIM: Number is from the SIM card
EMERGENCY_NUMBER_SOURCE_DATABASE: Number is from the platform-maintained database
EMERGENCY_NUMBER_SOURCE_MODEM_CONFIG: Number is from the modem configuration
EMERGENCY_NUMBER_SOURCE_DEFAULT: Number is available by default. The numbers 112 and 911 must always be available. 000, 08, 110, 999, 118, and 119 must be available when no SIM is present. For more details, see Section 10: Emergency Calls in 3GPP TS 22.101.
The values for emergency service categories are:
UNSPECIFIED: General emergency call, all categories
FIRE_BRIGADE: Fire brigade
MARINE_GUARD: Marine Guard
MOUNTAIN_RESCUE: Mountain Rescue
MIEC: Manually Initiated eCall (MIeC)
AIEC: Automatically Initiated eCall (AIeC)
For more details, see Section 10: Emergency Calls in 3GPP TS 22.101.
Hardware interface APIs
To report the current list of emergency numbers, implement
types.hal, which contains information about the emergency number including
the number address, the mobile country code (MCC), mobile network code (MNC),
emergency service category,
emergency uniform resource name (URN), and
emergency number source.
To indicate how an emergency call is handled, use
An emergency call can be requested using emergency routing or normal call
routing as required. If this is
UNKNOWN, routing is decided based on the
To validate your implementation, run the following CTS and VTS tests.
For additional information on related technical specifications and standards, see:
- 3GPP TS 22.101, Section 10: Emergency Calls
- 3GPP TS 24.008, Section 18.104.22.168: Emergency Number List
- 3GPP TS 23.167, Section 6: Functional description
- 3GPP TS 24.503, Section 22.214.171.124.1: General
- RFC 5031: A Uniform Resource Name (URN) for Emergency and Other Well-Known Services