實施緊急應變計畫

自 2017 年 1 月 1 日起,在印度銷售的所有行動裝置都必須提供 以滿足印度電信部 (DoT) 的規定。 為了符合這些法規要求,Android 會附上參考資料 導入緊急熱源功能,以便啟用緊急應變按鈕 Android 裝置。

根據預設,這項功能在 Android 8.0 以上版本中為啟用狀態, 必須修補到先前版本的現有版本中。這個 功能只針對印度市場上販售的裝置指定 包含在全球銷售的所有裝置上,因為該功能不具任何影響 印度以外的國家/地區

範例和來源

緊急通電功能已在 Android 開放原始碼中實作 專案 (AOSP) frameworks/base 專案。位於主要分支版本中,根據預設會在 Android 8.0 以上版本。

此功能目前適用於下列分支版本和修訂版本。 這項資訊能讓裝置製造商輕鬆修補 變更現有版本想要 實作 Android 開放原始碼計畫參考資料緊急求救功能 從適用的分支版本將修訂內容提交到各自的建構版本。

表 1. 用於 Android 開放原始碼計畫的 Cherry- Picks 參考緊急情況: 精選內容

Branch 修訂版本
主要 e0c3c66 新增「緊急功能」功能
42a4338 新增緊急動作字串的翻譯
4df8d64 修正平板電腦上會顯示緊急可用資源的問題
Nougat-dev e6680d9 新增「緊急功能」功能
95e1865 新增緊急動作字串的翻譯
a70bb89 修正平板電腦上會顯示緊急可用資源的問題
棉花糖 cd22634 新增「緊急功能」功能
13f51c6 新增緊急動作字串的翻譯
6531666 修正平板電腦上會顯示緊急可用資源的問題
Lollipop-mr1-dev 5fbc86b 新增「緊急功能」功能
1b60879 新增緊急動作字串的翻譯
D74366f 修正平板電腦上會顯示緊急可用資源的問題

實作

「緊急通能」功能不會變更透過其公開的 API Android 軟體開發套件 (SDK)。啟用和啟用後 功能提供兩種觸發事件,觸發系統撥打 112 的緊急電話 是在印度使用,由印度政府授權的緊急電話號碼 美國國防部規定。

撥打緊急電話的步驟如下:

長按畫面上的「緊急」按鈕
螢幕鎖定畫面
輕觸畫面中顯示的「緊急」選項
通用動作選單
緊急情況
按鈕
圖 1.開啟「緊急」按鈕 鎖定螢幕。
緊急情況
選項
圖 2.緊急動作已開啟 全域動作選單 (長按電源鍵即可存取)。

這項功能提供以下內部元件:

  • EmergencyAffordanceManager
    frameworks/base/core/java/com/android/internal/policy/EmergencyAffordanceManager.java
    
  • 緊急收費服務
    frameworks/base/services/core/java/com/android/server/emergency/EmergencyAffordanceService.java
    

EmergencyAffordanceManager

EmergencyAffordanceManager 提供內部 API,以便使用緊急情況 功能齊全。Google 助理會顯示撥打緊急電話和 如果這項功能應啟用,則在執行階段進行查詢。

  • void performEmergencyCall()。撥打緊急電話。
  • boolean needsEmergencyAffordance()。判斷功能是否 應為已啟用。

如果變更 EmergencyAffordanceManager.ENABLED 常數為 false。 這會導致 needsEmergencyAffordance() 一律傳回 false 並防止 EmergencyAffordanceService 啟動。

緊急收費服務

EmergencyAffordanceService 是一項系統服務,會監控 所有偵測到的行動網路和 MCC 的行動裝置國家/地區代碼 (MCC) 。或偵測到任何已安裝或偵測到的 SIM 卡 行動網路的 MCC 為印度的其中一個 MCC (404 或 405), 功能才會啟用這表示即使在印度,也可使用這項功能 沒有 SIM 卡。假設行動網路允許 註冊緊急電話。功能 系統會保持啟用狀態,直到安裝非印度 SIM 卡且未偵測到任何印度 SIM 卡為止 聯播網有相符的 MCC。

下列資源和設定會影響緊急求救行為 功能齊全。設定類型為:

  • 資源,是位於 frameworks/base/core/res/res/values/config.xml
  • 設定,這是儲存在系統設定中的設定。 。

表 2. 影響緊急求救行為的設定 精選內容

設定類型 名稱 說明
資源 config_emergency_call_number 撥打緊急電話時,系統自動撥打的電話號碼 已啟動。
類型:字串
預設:112
資源 config_emergency_mcc_codes 列出應啟用功能的 MCC 的整數陣列。
類型:整數陣列
預設:{404,405}
設定 multi_affordance_number 全域設定覆寫,顯示可與緊急電話撥號的電話號碼 這只會影響可進行偵錯的建構映像檔,也就是 類型為 userdebug 或 eng)。僅供測試。
類型:字串
預設:未設定
設定 force_emergency_affordance 全域設定,是否應顯示緊急情況,無論如何都應顯示 裝置狀態僅供測試。
類型:布林值 (1 或 0)
預設:未設定 -->0 分

允許撥打緊急電話給 112

緊急求救功能會透過緊急求救功能撥電話給你 撥號程式,可讓使用者在螢幕鎖定時接通電話。 緊急撥號程式只會將電話撥打至 透過系統屬性使用無線電介面層 (RIL):

  • 未安裝 SIM 卡時則為 ril.ecclist
  • 插入 SIM 卡時:ril.ecclistSimSlotNumberSimSlotNumber 是預設的版位 ID 位訂閱者。

使用緊急預設用途功能的裝置製造商必須 印度境內的裝置,一律啟用 112 做為 RIL 的緊急電話號碼。

驗證

在測試可進行偵錯版本時,呼叫的數字可能會變更 執行下列指令:

adb shell settings put global emergency_affordance_number NUMBER_TO_CALL

雖然這項設定可在一般的使用者版本中指定,但系統將忽略此設定。 如要確實接通這通電話,必須列於緊急狀況清單中 數字。您可以利用下列方法暫時完成這項設定 指令:

setprop ril.ecclist "$(getprop ril.ecclist),NUMBER_TO_CALL"

您也可以使用以下指令強制執行緊急緊急情況服務 則就算沒有印度行動網路 或插入了印度 SIM 卡。

adb shell settings put global force_emergency_affordance 1

您至少應測試以下案例:

  • 啟動後,長按「緊急」按鈕 鎖定螢幕 (圖 1) 撥打指定的緊急電話號碼。
  • 啟用後,Global Action 中的Emergency項目 在畫面上顯示選單,輕觸選單即可撥號給指定緊急情況 號碼。
  • 為在缺少回應的情況下,系統並未啟用 偵測到印度行動網路,且安裝了非印度 SIM 卡。
  • 使用印度 SIM 卡時,裝置上已啟用這項功能 卡片和卡片皆已安裝,無論偵測到的行動網路為何。
  • 在具有以下情況的情況下,系統會在裝置上啟用這項功能 。

如果裝置支援多張 SIM 卡,則測試必須確保 確認 SIM 卡 MCC 偵測功能可以在每個 SIM 卡插槽中正常運作。緊急狀況 功能性功能不受 Android 相容性規範,因此沒有 Compatibility Test Suite (CTS) 測試。

常見問題

問:緊急電話號碼 112 尚未撥付 印度。是否應繼續使用?

「112」是印度政府進行公共安全緊急應變時參考的號碼 整合緊急通訊與回應的定義 (PSAP) 系統 (IECRS)。在 PSAP 實施前,所有發給 112 的來電都會轉接至這個值 現有 100 個緊急電話號碼 (不過 而非 Android)。

問:其他觸發因素 (如壓三下) 電源鍵?

裝置製造商可能會選擇導入其他觸發條件。不過 印度 DoT 核准輕觸三下硬體電源鍵 Android 開放原始碼計畫參考資料實作項目不支援觸發條件 某些熱門應用程式 (例如「相機」應用程式) 都會使用電源鍵手勢 包括重複按下電源鍵的按鈕這類應用程式 或使用者可能不小心觸發了 緊急按鈕,導致系統嘗試在這些應用程式中觸發動作。