緊急電話號碼和緊急電話撥號

緊急電話是裝置不可或缺的一項功能,因為這類功能必須適用於 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 Guard
  • MOUNTAIN_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 測試

參考資料

如要進一步瞭解相關技術規格與標準,請參閱: