緊急呼叫對於設備而言至關重要,因為它們必須為 Android 用戶工作,同時滿足全球各種運營商和監管要求。 Android 框架為用戶提供快速安全的緊急呼叫體驗。
Android 10 通過使用來自 SIM、網絡、調製解調器和數據庫的詳細緊急號碼列表,為本地 Android 平台中的緊急呼叫功能、維護和更新提供了改進的支持。 Android 10 還支持基於緊急服務類型的緊急呼叫,例如警察、消防或救護車。 Android 10 通過在 TelephonyManager API 中共享來自多個訂閱的緊急號碼,改進了對多 SIM 卡設備的支持。
在帶有 Radio HAL 1.4 的 Android 10 中,緊急呼叫通過在 HAL 接口中將緊急呼叫與正常呼叫分離以優化緊急呼叫路徑並允許設備撥打 Android 數據庫中配置的適當緊急號碼來改進緊急呼叫。
執行
要實現緊急呼叫和緊急號碼功能,請實現以下TelephonyManager
和硬件接口 API。
TelephonyManager API
實現以下 API:
- 實現
getEmergencyNumberList
以根據緊急號碼來源(包括區域設置、SIM 卡、默認值、調製解調器、Android 數據庫和網絡)獲取有效的緊急號碼以進行緊急呼叫。對於每個緊急號碼,指定相應的緊急服務類別,例如警察、救護車和消防。 - 實施
isEmergencyNumber
以識別電話號碼是否為緊急號碼。 - 實施
isPotentialEmergencyNumber
以將一個號碼標識為緊急號碼,如果它與任何緊急號碼具有相同的起始數字。
緊急號碼來源的值為:
-
EMERGENCY_NUMBER_SOURCE_NETWORK_SIGNALING
:號碼來自網絡信號 EMERGENCY_NUMBER_SOURCE_SIM
:號碼來自 SIM 卡EMERGENCY_NUMBER_SOURCE_DATABASE
:數字來自平台維護的數據庫EMERGENCY_NUMBER_SOURCE_MODEM_CONFIG
:數字來自調製解調器配置EMERGENCY_NUMBER_SOURCE_DEFAULT
:數字默認可用。號碼 112 和 911 必須始終可用。當沒有 SIM 卡時,000、08、110、999、118 和 119 必須可用。有關更多詳細信息,請參閱第 10 節: 3GPP TS 22.101中的緊急呼叫。
緊急服務類別的值是:
-
UNSPECIFIED
:一般緊急呼叫,所有類別 POLICE
:警察AMBULANCE
:救護車FIRE_BRIGADE
: 消防隊MARINE_GUARD
: 海軍陸戰隊警衛隊MOUNTAIN_RESCUE
: 山地救援MIEC
: 手動發起的 eCall (MieC)-
AIEC
: 自動發起 eCall (AieC)
有關更多詳細信息,請參閱第 10 節: 3GPP TS 22.101中的緊急呼叫。
硬件接口 API
在IRadio.hal
中實現emergencyDial
撥號。在emergencyDialResponse
中實現IRadioResponse.hal
以發送帶有響應類型、序列號和錯誤信息的響應。
要報告當前緊急號碼列表,請在IRadioIndication.hal
中實現currentEmergencyNumberList
。在types.hal
中實現EmergencyNumber
,其中包含緊急號碼的信息,包括號碼地址、移動國家代碼 (MCC)、移動網絡代碼 (MNC)、緊急服務類別、緊急統一資源名稱 (URN) 和緊急號碼來源.
要指示如何處理緊急呼叫,請使用EmergencyCallRouting
。可以根據需要使用緊急路由或正常呼叫路由請求緊急呼叫。如果這是UNKNOWN
,則根據實現決定路由。
驗證
要驗證您的實施,請運行以下 CTS 和 VTS 測試。
CTS 測試
VTS 測試
參考
有關相關技術規範和標準的更多信息,請參閱:
- 3GPP TS 22.101 ,第 10 節:緊急呼叫
- 3GPP TS 24.008 ,第 9.2.13.4 節:緊急號碼列表
- 3GPP TS 23.167 ,第 6 節:功能描述
- 3GPP TS 24.503 ,第 5.1.6.8.1 節:一般
- RFC 5031 :緊急服務和其他知名服務的統一資源名稱 (URN)