區域廣播

CellBroadcast 模組可讓原始設備製造商 (OEM) 使用重複性工作。 可以減少 Android 生態系統中的零碎資料,並 使用者行為),並有助於簡化電信業者測試流程,以及 具備行動網路廣播相關規定的認證 (因為驗證碼無法 經原始設備製造商 (OEM) 修改)。這個模組可以更新,表示該模組可接收 運作異常。

套件格式

CellBroadcast 模組包含下列服務和應用程式。

  • CellBroadcastService 服務支援區域廣播簡訊解碼功能。 無線緊急警報 (WEA) 3.0、訊息複製檢查 以及向應用程式廣播訊息這是一對多指定地理區域 地理圍欄訊息服務,可將訊息傳送至多個行動裝置 兩地都有許多電話使用者「服務」是由 ETSI GSM 委員會 3GPP,也是 電信標準

  • CellBroadcastReceiver 應用程式是預設系統應用程式 緊急和非緊急警報 (例如琥珀與總統) 會根據貨運公司和區域 向使用者顯示資訊 法規。

區域廣播訊息流程

下圖顯示 CellBroadcast 訊息流程。

CellBroadcastReceiver 訊息流程

圖 1. CellBroadcastReceiver 訊息流程

  1. 無線電介面層 (RIL) 會將 CDMA/GSM 通知 InBoundSMSHandler 區域廣播簡訊。

  2. 這個架構會將 CellBroadcast SMS 轉送至 CBS 模組,進行剖析和 處理收到的訊息

  3. 訊息處理完成後,CellBroadcastService 會將意圖轉送至 系統預設的 CellBroadcastReceiver 應用程式

  4. CellBroadcastReceiver 應用程式會向使用者顯示訊息。

模組格式

CellBroadcastService 和 CellBroadcastReceiver 應用程式隨附於 單一 APEX 檔案 (com.android.cellbroadcast),適用於執行中的裝置 搭載 Android 11 以上版本。這個模組包含 package/app/CellBroadcastReceiver,並將現有架構類別遷移至 packages/modules/CellBroadcastService

模組依附元件

CellBroadcast 模組僅使用穩定版 @SystemApi (無 @hide API),且依附於下列靜態程式庫。

  • Androidx.legacy_legacy-support-v13
  • Androidx.recyclerview_recyclerview
  • Androidx.preference_preference
  • androidx.legacy_legacy-preference-v14
  • androidx.appcompat_appcompat

您可以使用執行階段資源重疊元素自訂設定 (RRO)

權限設定

CellBroadcast 模組是以 Google 簽章簽署,而非使用平台簽署 簽章,也就是說該模組會失去簽章權限。 Android 11 改為定義新的簽名 「com.android.cellbroadcastservice.FULL_ACCESS_CELL_BROADCAST_HISTORY」權限 內部實況活動只有模組中的套件能取得 因為應用程式使用相同的金鑰簽署。這項權限允許 CellBroadcastReceiver 應用程式,才能完全存取內部資料庫 CellBroadcastService。

平台授予 android.permission.READ_CELL_BROADCASTS 執行階段 預設系統簡訊應用程式的存取權限,可存取緊急記錄 快訊。

整合 CellBroadcast 模組

本節說明如何整合 CellBroadcast 模組。

與設定整合

你可以在「設定」應用程式中決定要將區域廣播設定整合至哪些位置 (使用者只需前往 [設定] > 應用程式與通知 >進階 >緊急警報)。發布 請在「設定」應用程式中變更 CellBroadcastReceiver 應用程式 指定使用套件名稱的組態 com.android.cellbroadcastreceiver

<!-- Cell broacast receiver package name [DO NOT TRANSLATE] -->
<string name="cell_broadcast_receiver_package">
com.android.cellbroadcastreceiver</string>

與訊息應用程式整合

你可以將應用程式連結整合至訊息應用程式,以開啟 CellBroadcast 訊息記錄。在 Android 訊息應用程式中,這項功能已整合至 「設定」>進階 >緊急警報。如何將連結整合至 方法是在訊息應用程式中定義路徑 CellBroadcast 模組元件名稱 com.android.cellbroadcastreceiver/com.android.cellbroadcastreceiver.CellBroadcastListActivity

與簡訊收件匣整合

您可以在預設訊息應用程式中顯示區域廣播訊息,方法如下: 使用執行階段資源疊加層覆寫下列設定。

<item type="bool" name="enable_write_alerts_to_sms_inbox" />

由於授予權限的權限不在 CellBroadcast 模組的範圍之內 你必須授予 AppOpsManager.OP_WRITE_SMS 權限給 CellBroadcast 模組,以提供端對端支援。如需 Android 開放原始碼計畫參考資料實作項目, 請參閱SmsApplication.java 修補程式

啟動 CellBroadcastReceiver 應用程式

CellBroadcastReceiver 應用程式包含下列啟動點。

  • 「設定」應用程式選單。

  • 應用程式 (包括第三方應用程式),例如連結至 區域廣播訊息記錄。

  • (選用) 由原始設備製造商 (OEM) 新增的 Android 主畫面中的啟動圖示。 詳情請參閱「新增啟動圖示」。

CellBroadcastReceiver 應用程式設定

以下螢幕截圖是 CellBroadcastReceiver 應用程式設定選單。

CellBroadcastReceiver 應用程式設定選單

圖 2. CellBroadcastReceiver 應用程式設定選單

緊急警報記錄

圖 3. 緊急警報記錄畫面

新增啟動圖示

你可以透過應用程式啟動器啟用存取區域廣播訊息記錄 以及你自己的啟動圖示

  • 如要啟用從應用程式啟動器存取訊息記錄,請覆寫 下列配置方式

    <item type="bool" name="show_message_history_in_launcher" />
    
  • 如要覆寫 Android 開放原始碼計畫預設圖示,請使用 RRO。

    <!-- Customize launcher icon for cellbroadcast history -->
    <item type="mipmap" name="ic_launcher_cell_broadcast" />
    

啟用 CMAS 密鑰

如要啟用 CMAS 密鑰,請 *#*#CMAS#*#* (在 撥號鍵盤),撥號應用程式必須監聽特殊撥號程式碼,格式如下: *#*#code#*#*,並使用公用方法處理程式碼 sendDialerSpecialCode

區域資訊規定:頻道 50

第 50 頻道是專門提供給電信業者的廣播地區相關特殊頻道 的資訊 (南非的 MTN 除外)。在這個頻道上播送 都不會顯示對話方塊或通知。請改用廣播功能 訊息會出現在「設定」選單的 SIM 卡狀態或狀態列中 ( 例如顯示郵遞區號)。

Android CellBroadcastService 實作項目支援 驗證設定和 SysUI 應用程式區域廣播服務中的 API 取得廣播頻道 50 資訊。如要實作這項功能,請按照下列步驟操作:

  • 註冊廣播 android.telephony.action.AREA_INFO_UPDATED 並覆寫 透過 RRO 建立接收器套件名稱 config_area_info_receiver_packages

  • 繫結至 CellBroadcastService.CELL_BROADCAST_SERVICE_INTERFACE

由於 Settings 和 SysUI 應用程式不在 CellBroadcast 範圍內 模組,您必須在 SystemUI 或「設定」應用程式中實作變更,才能 提供端對端支援如需參考實作,請參閱 CellBroadcastService 設定 app

自訂

您無法直接修改 CellBroadcast 模組的原始碼,但您可以 可使用執行階段資源重疊 (RRO): 啟用 (或停用) 參數 (例如,您可自訂通知顏色和 對話方塊的維度)。如要覆寫 請將 CellBroadcast 模組中的目標套件名稱變更為 com.android.cellbroadcastreceiver。並執行下列動作:

如果實作結果缺少 UI 字串轉譯資源,或者 如果翻譯不符合您的期望,您可以覆寫譯文 或與 Google 翻譯團隊合作將資源用於上游 也就是將字串轉譯為 CellBroadcast 模組如果覆寫翻譯 Google 必須在 overlayable.xml 中公開這些字串, 覆寫設定如需更多使用者介面自訂設定,請與 CellBroadcast 支援群組

遷移資料

Android 11 內含舊版 CellBroadcast 應用程式 這項機制提供保留及遷移應用程式資料 (包括使用者設定和 緊急警報記錄)。 使用 CellBroadcast 模組的 Android 實作項目應包含 。如果您的 使用自訂 CellBroadcast 解決方案 CellBroadcastContentProvider APK 來保留資料 (您可以放心移除 舊版區域廣播 APK)。

使用 CellBroadcast 模組升級的裝置中,模組會擷取資料 您可以安裝 Android 開放原始碼計畫 LegacyCellBroadcastApp 原始設備製造商 (OEM) 透過定義明確的 CellBroadcastContentProvider APK 「cellbroadcast-legacy」授權。

使用原始設備製造商 (OEM) 定義的 CellBroadcastContentProvider APK

定義 CellBroadcastContentProvider APK 時,APK 必須遵循以下格式 規格。

  • APK 是「無頭」 APK,只會顯示其資料庫的內容 和 SharedPreferences敬上 透過 ContentProvider 物件具有 cellbroadcast-legacy 授權,而且無法存取 第三方應用程式存取權

  • APK 是由原始設備製造商 (OEM) 開發及擁有,因此原始設備製造商 (OEM) 可以繼續 託管 API 結構定義

如要將 SharedPreferences 遷移至 CellBroadcast 模組,請 CellBroadcastContentProvider APK 必須支援 ContentProvider.call) 方法,包含以下參數:

  • 職權: @SystemAPI CellBroadcast.LEGACY_CONTENT_URI
  • 方法: @SystemAPI CellBroadcast.CALL_METHOD_GET_PREFERENCE
  • 引數: @SystemAPI CellBroadcast.Preference

    這是 CellBroadcast 支援的共用偏好設定鍵清單 後續課程我們將逐一介紹 預先訓練的 API、AutoML 和自訂訓練資料來源為 SharedPreferences,用於 ContentProvider.call 方法。

如要將訊息記錄遷移至 CellBroadcast 模組,請 CellBroadcastContentProvider APK 必須支援 ContentProvider.query敬上 方法,其中包含下列參數:

  • 權威推薦: @SystemAPI CellBroadcast.LEGACY_CONTENT_URI。查詢欄 列出 CellBroadcast 模組支援的訊息屬性。擷取資料 (來自資料庫) ContentProvider.query 方法。

如需 CellBroadcastContentProvider, 的參考實作,請參閱 LegacyCellBroadcastContentProvider

測試

Android Compatibility Test Suite (CTS) 會驗證 應用程式依附的系統 API您也可以執行 CellBroadcast 模組 unit tests/testappsp

若原始設備製造商 (OEM) 已為裝置啟用 CMAS 密鑰, 裝置可使用下列功能支援偵錯模式。

  • 測試快訊會歸類到「其他快訊」下方,並提供開啟/關閉切換鈕。

  • 記錄會列出所有已接收但未顯示的訊息,例如 或是以其他語言顯示重複的訊息或訊息。

  • 訊息會顯示所有可用參數,包括序號、訊息 ID 和到期日

如要啟用偵錯模式,請在撥號程式上撥號 *#*#CMAS#*#*

聯絡資訊

如要進一步瞭解 CellBroadcast 模組或,請與 行動網路廣播支援群組