緊急呼叫對於設備來說至關重要,因為它們必須為 Android 用戶提供服務,同時滿足世界各地的各種營運商和監管要求。 Android框架為使用者提供快速、安全的緊急呼叫體驗。
Android 10 透過使用來自 SIM、網路、數據機和資料庫的詳細緊急號碼列表,改進了對本地 Android 平台中的緊急呼叫功能、維護和更新的支援。 Android 10 還支援根據警察、消防或救護車等緊急服務類型進行緊急呼叫。 Android 10 透過在 TelephonyManager API 中共享多個訂閱的緊急號碼,改進了對多 SIM 卡裝置的支援。
在具有 Radio HAL 1.4 的 Android 10 中,緊急呼叫得到了改進,透過在 HAL 介面中將緊急呼叫與正常呼叫分開來優化緊急呼叫路徑,並允許裝置撥打 Android 資料庫中配置的相應緊急號碼。
執行
為了實現緊急呼叫和緊急號碼功能,需要實作以下TelephonyManager
和硬體介面API。
電話管理器 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 必須可用。有關更多詳細信息,請參閱3GPP TS 22.101中的第 10 節:緊急呼叫。
緊急服務類別的值為:
-
UNSPECIFIED
:一般緊急呼叫,所有類別 POLICE
:警察AMBULANCE
:救護車FIRE_BRIGADE
:消防隊MARINE_GUARD
:海軍陸戰隊警衛隊MOUNTAIN_RESCUE
:山區救援MIEC
:手動啟動 eCall (MIeC)-
AIEC
:自動發起的 eCall (AIeC)
有關更多詳細信息,請參閱3GPP TS 22.101中的第 10 節:緊急呼叫。
硬體介面API
在IRadio.hal
中實現emergencyDial
。在IRadioResponse.hal
中實作emergencyDialResponse
,以傳送帶有回應類型、序號和錯誤訊息的回應。
要報告當前的緊急號碼列表,請在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)