緊急電話是裝置不可或缺的一項功能,因為這類功能必須適用於 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 詳情請參閱 3GPP TS 22.101 中的「第 10 節:緊急電話」。
緊急服務類別的值如下:
UNSPECIFIED
:一般緊急電話,所有類別POLICE
:警察AMBULANCE
:救護車FIRE_BRIGADE
:消防隊MARINE_GUARD
:Marine GuardMOUNTAIN_RESCUE
:山區救援MIEC
:手動撥打的電話 (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)