Google is committed to advancing racial equity for Black communities. See how.
Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

CellBroadcast

Das CellBroadcast-Modul reduziert den Wiederholungsaufwand für OEMs (was wiederum die Fragmentierung im gesamten Android-Ökosystem verringert und den Endbenutzern ein konsistentes Verhalten bietet) und hilft, das Testen und Zertifizieren von Netzbetreibern für CellBroadcast-bezogene Anforderungen zu optimieren (da der Code von OEMs nicht geändert werden kann ). Dieses Modul kann aktualisiert werden, dh es kann Aktualisierungen der Funktionalität außerhalb des normalen Android-Veröffentlichungszyklus erhalten.

Das CellBroadcast-Modul besteht aus dem folgenden Dienst und der folgenden App.

  • Der CellBroadcastService- Dienst unterstützt die CellBroadcast-SMS-Decodierung, das Geofencing für WEA 3.0 (Wireless Emergency Alert), die Überprüfung der Duplizierung von Nachrichten und das Senden von Nachrichten an Apps. Es handelt sich um einen Eins-zu-Viele-Geotargeted- und Geofenced-Messaging-Dienst, mit dem Nachrichten an mehrere Mobiltelefonbenutzer in einem definierten Bereich gleichzeitig übermittelt werden können. Der Dienst wird vom ETSI- GSM-Ausschuss 3GPP definiert und ist Teil der Telekommunikationsstandards.

  • Die CellBroadcastReceiver- App ist eine Standardsystem-App, die Notfall- und Nicht-Notfallbenachrichtigungen (z. B. Bernstein- und Präsidentenbenachrichtigungen) verarbeitet und die Informationen den Endbenutzern basierend auf den Bestimmungen des Netzbetreibers und der Region vorlegt.

Die folgende Abbildung zeigt den CellBroadcast-Nachrichtenfluss.

Nachrichtenfluss von CellBroadcastReceiver

Abbildung 1. Nachrichtenfluss von CellBroadcastReceiver

  1. Die Funkschnittstellenschicht (RIL) benachrichtigt InBoundSMSHandler über eine CDMA / GSM CellBroadcast-SMS.

  2. Das Framework leitet die CellBroadcast-SMS an das CBS-Modul weiter, um die eingehende Nachricht zu analysieren und zu verarbeiten.

  3. Nachdem die Nachricht verarbeitet wurde, leitet CellBroadcastService die Absicht an die Standard-CellBroadcastReceiver-App des Systems weiter.

  4. Die CellBroadcastReceiver-App zeigt dem Benutzer die Nachricht an.

Modulformat

Der CellBroadcastService und die CellBroadcastReceiver-App sind in einer einzigen APEX- Datei ( com.google.android.cellbroadcast ) enthalten, die für Geräte mit Android 11 oder höher verfügbar ist. Das Modul enthält Code in package/app/CellBroadcastReceiver und migriert vorhandene Framework-Klassen nach packages/modules/CellBroadcastService .

Modulabhängigkeiten

Das CellBroadcast-Modul interagiert mit dem Framework nur über stabile @SystemApi (keine @hide APIs) und hängt von den folgenden statischen Bibliotheken ab.

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

Sie können die Konfiguration mithilfe von RROs (Runtime Resource Overlays) anpassen .

Berechtigungskonfiguration

Das CellBroadcast-Modul ist mit einer Google-Signatur anstelle einer Plattformsignatur signiert. Dies bedeutet, dass das Modul den Zugriff auf Signaturberechtigungen verliert. Stattdessen definiert Android 11 die neue Signaturberechtigung com.android.cellbroadcastservice.FULL_ACCESS_CELL_BROADCAST_HISTORY im CellBroadcast-Modul. Nur Pakete im Modul können die Berechtigung erhalten, da sie mit demselben Schlüssel signiert sind. Diese Berechtigung ermöglicht der CellBroadcastReceiver-App den vollständigen Zugriff auf die Datenbank in CellBroadcastService.

Die Plattform gewährt der Standard-SMS-App des android.permission.READ_CELL_BROADCASTS Laufzeitberechtigung android.permission.READ_CELL_BROADCASTS für den Zugriff auf den Verlauf von Notfallwarnungen.

Integration des CellBroadcast-Moduls

In diesem Abschnitt wird beschrieben, wie Sie das CellBroadcast-Modul integrieren.

Integration in Einstellungen

Sie können entscheiden, wo die CellBroadcast-Einstellungen in die Einstellungen-App integriert werden sollen (Endbenutzer greifen über Einstellungen > Apps & Benachrichtigungen > Erweitert> Notfallbenachrichtigung auf die Seite CellBroadcast-Einstellungen zu). Um die CellBroadcastReceiver-App über die Einstellungen-App zu starten, ändern Sie die folgenden Einstellungskonfigurationen mit dem Paketnamen com.google.android.cellbroadcastreceiver .

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

Integration in Messaging-Apps

Sie können einen App-Link in Messaging-Apps integrieren, um den CellBroadcast-Nachrichtenverlauf zu öffnen. In der Android Messaging-App wurde dies in Einstellungen > Erweitert > Notfallalarm integriert . Um einen Link in Ihre eigene Messaging-App zu integrieren, definieren Sie den Pfad in der Messaging-App und konfigurieren Sie den Komponentennamen für das CellBroadcast-Modul als com.google.android.cellbroadcastreceiver/com.android.cellbroadcastreceiver.CellBroadcastListActivity .

Integration in den SMS-Posteingang

Sie können die Anzeige von CellBroadcast-Nachrichten in der Standard-Messaging-App aktivieren, indem Sie die folgende Konfiguration mithilfe eines Laufzeitressourcen-Overlays überschreiben.

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

Da Berechtigungen Gewährung außerhalb des Geltungsbereichs des Cell Broadcast - Modul ist, müssen Sie die Gewährung AppOpsManager.OP_WRITE_SMS Berechtigung für das Cell Broadcast Modul End-to-End - Unterstützung. Eine AOSP-Referenzimplementierung finden Sie in diesem SmsApplication.java Patch .

Starten der CellBroadcastReceiver-App

Die CellBroadcastReceiver-App verfügt über die folgenden Startpunkte.

  • Das App-Menü Einstellungen.

  • Eine App (einschließlich Apps von Drittanbietern), z. B. eine Nachrichten-App, die mit dem CellBroadcast-Nachrichtenverlauf verknüpft ist.

  • (Optional) Ein vom OEM hinzugefügtes Startsymbol auf dem Android-Startbildschirm. Weitere Informationen finden Sie unter Hinzufügen eines Startsymbols .

Die folgenden Screenshots zeigen das Einstellungsmenü der CellBroadcastReceiver-App.

Einstellungsmenü der CellBroadcastReceiver-App

Abbildung 2. Einstellungsmenü der CellBroadcastReceiver-App

Notfallalarmverlauf

Abbildung 3. Verlaufsbildschirm für Notfallalarme

Startsymbole hinzufügen

Sie können den Zugriff auf den CellBroadcast-Nachrichtenverlauf über den App-Starter und über Ihre eigenen Startsymbole aktivieren.

  • Überschreiben Sie die folgende Konfiguration mithilfe eines RRO, um den Zugriff auf den Nachrichtenverlauf über den App-Starter zu ermöglichen.

    <item type="bool" name="show_message_history_in_launcher" />
    
  • Um das AOSP-Standardsymbol zu überschreiben, überschreiben Sie die folgende Konfiguration mit einem RRO.

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

Aktivieren des CMAS-Geheimcodes

Um den CMAS-Geheimcode * # * # CMAS # * # * ( * # * # 2627 # * # * auf dem Wähltastenfeld) zu aktivieren, muss eine Dialer-App auf den speziellen Dialer-Code in Form von * # * # warten. code # * # * und behandeln Sie den Code mit der öffentlichen Methode sendDialerSpecialCode .

Gebietsinfo-Anforderung: Kanal 50

Kanal 50 ist ein spezieller Kanal für Fluggesellschaften, um gebietsbezogene Informationen zu senden (außer MTN in Südafrika). Für diesen Kanal führen Broadcast-Nachrichten nicht zu einem Popup-Dialog oder einer Benachrichtigung. Stattdessen werden Broadcast-Nachrichten im SIM-Status des Einstellungsmenüs oder in der Statusleiste angezeigt (z. B. Anzeige einer Postleitzahl).

Die Android CellBroadcastService-Implementierung bietet Unterstützung für die folgenden APIs im Cell Broadcast-Dienst für die Einstellungen und SysUI-Apps, um die Broadcast Channel 50-Informationen abzurufen. Gehen Sie folgendermaßen vor, um dies zu implementieren:

  • Registrieren Sie Broadcast android.telephony.action.AREA_INFO_UPDATED und überschreiben Sie den Namen des Empfängerpakets config_area_info_receiver_packages über eine RRO.

  • Binden Sie an CellBroadcastService.CELL_BROADCAST_SERVICE_INTERFACE .

Da die Einstellungen und SysUI-Apps außerhalb des Bereichs des CellBroadcast-Moduls liegen, müssen Sie Ihre Änderungen in der SystemUI oder der Einstellungen-App implementieren, um End-to-End-Unterstützung zu bieten. Eine Referenzimplementierung finden Sie in der App CellBroadcastService-Einstellungen .

Customizing

Sie können den Quellcode des CellBroadcast-Moduls nicht direkt ändern, aber Sie können Laufzeitressourcen-Overlays (RROs) verwenden , um Parameter zu aktivieren (oder zu deaktivieren) (z. B. können Sie die Farbe von Benachrichtigungen und Dimensionen in Dialogfeldern anpassen). Ändern Sie den Namen des com.google.android.cellbroadcastreceiver in com.google.android.cellbroadcastreceiver, um die Standardwerte der im CellBroadcast-Modul verwendeten Parameter zu com.google.android.cellbroadcastreceiver . Und dazu:

Wenn in der Implementierung Ressourcen für die Übersetzung von UI-Zeichenfolgen fehlen oder wenn die Übersetzungen nicht Ihren Erwartungen entsprechen, können Sie die Übersetzungsressourcen mithilfe eines RRO überschreiben oder mit dem Google-Übersetzungsteam zusammenarbeiten, um Zeichenfolgenübersetzungen in das CellBroadcast-Modul zu übertragen. Wenn Sie die Übersetzungsressourcen überschreiben, muss Google diese Zeichenfolgen in overlayable.xml , um das Überschreiben zu ermöglichen. Wenn Sie weitere Konfigurationen für die Anpassung der Benutzeroberfläche benötigen, wenden Sie sich an die CellBroadcast-Supportgruppe .

Daten migrieren

Android 11 enthält eine ältere CellBroadcast-App, mit der App-Daten (einschließlich Benutzereinstellungen und Notfallwarnungen) für Geräte, die auf das CellBroadcast-Modul aktualisiert werden, beibehalten und migriert werden können. Android-Implementierungen, die das CellBroadcast-Modul verwenden, sollten die ältere CellBroadcast-App in ihren Build für die Datenmigration aufnehmen. Wenn Ihre Implementierung eine benutzerdefinierte CellBroadcast-Lösung verwendet, sollten Sie eine CellBroadcastContentProvider-APK definieren, um Daten zu erhalten (Sie können die ältere Cell Broadcast-APK in einer nachfolgenden Version sicher entfernen).

Auf Geräten, die für die Verwendung des CellBroadcast-Moduls aktualisiert wurden, ruft das Modul Daten entweder von der AOSP LegacyCellBroadcastApp oder der OEM-definierten CellBroadcastContentProvider-APK über die genau definierte cellbroadcast-legacy Berechtigung ab.

Bei der Definition einer CellBroadcastContentProvider-APK muss die APK diese Spezifikationen befolgen.

  • Die APK ist eine kopflose APK, die nur den Inhalt ihrer Datenbank und SharedPreferences über ein ContentProvider Objekt mit der cellbroadcast-legacy und für Apps von Drittanbietern nicht zugänglich ist.

  • Die APK wird vom OEM entwickelt und gehört ihm, wobei der OEM weiterhin sein verstecktes API-Schema hosten kann.

Um SharedPreferences in das CellBroadcast-Modul zu migrieren, muss das CellBroadcastContentProvider-APK die ContentProvider.call ) -Methode mit den folgenden Parametern unterstützen:

  • Berechtigung: @SystemAPI CellBroadcast.LEGACY_CONTENT_URI
  • Methode: @SystemAPI CellBroadcast.CALL_METHOD_GET_PREFERENCE
  • Arg: @SystemAPI CellBroadcast.Preference

    Dies ist eine Liste der unterstützten freigegebenen Voreinstellungsschlüssel für das CellBroadcast-Modul. Die Daten stammen aus SharedPreferences für die ContentProvider.call Methode.

Um den Nachrichtenverlauf in das CellBroadcast-Modul zu migrieren, muss das CellBroadcastContentProvider-APK die ContentProvider.query Methode mit den folgenden Parametern unterstützen:

  • Berechtigung: @SystemAPI CellBroadcast.LEGACY_CONTENT_URI . In den Abfragespalten werden die unterstützten Nachrichteneigenschaften für das CellBroadcast-Modul aufgelistet. Nimmt Daten (aus Ihrer Datenbank) für die ContentProvider.query Methode auf.

Eine Referenzimplementierung für CellBroadcastContentProvider, unter LegacyCellBroadcastContentProvider .

Testen

Die Android Compatibility Test Suite (CTS) überprüft die Funktionalität von App-abhängigen System-APIs. Sie können auch CellBroadcast-Modul unit tests/testappsp .

Wenn der OEM den CMAS-Geheimcode für ein Gerät aktiviert hat, kann dieses Gerät den Debug-Modus mit den folgenden Funktionen unterstützen.

  • Testwarnungen werden unter Andere Warnungen mit einem Ein / Aus-Schalter zusammengefasst.

  • Der Verlauf umfasst alle Nachrichten, die empfangen, aber nicht angezeigt wurden, z. B. doppelte Nachrichten oder Nachrichten in einer anderen Sprache.

  • In Nachrichten werden alle verfügbaren Parameter angezeigt, einschließlich Seriennummer, Nachrichten-ID und Ablaufdatum.

Um den Debug-Modus zu aktivieren, wählen Sie * # * # CMAS # * # * auf dem Dialer.

Modulkonformität

In der folgenden Tabelle wird die Einhaltung von CellBroadcast nach Region und Land beschrieben.

Region Land CBS-konform Protokolle implementiert
APAC Australien Ja
Hongkong Ja HKCA 3107
Indien Unzutreffend
(keine CBS-Anforderungen)
Japan Ja Erdbeben- und Tsunami-Warnsystem (ETWS)
3GPP TS 36.331 V16.0.0
Neuseeland Ja
Republik Korea Ja KPAS
Taiwan Ja Öffentliches Warnsystem (PWS) PLMN10_107.03.12
EMEA Griechenland Ja
Israel Ja
Italien Ja
Litauen Ja
Niederlande Ja
Rumänien Ja
Oman Ja
Russland Ja
Saudi Arabien Ja
Südafrika Ja
Truthahn Ja
VAE Ja
Vereinigtes Königreich Ja CellBroadcast HL Handset-Spezifikation-v-1.1
Nordamerika Kanada Ja

Unterstützte Protokolle:

  • Kommerzielles mobiles Alarmsystem (CMAS)
  • WEA 2.0 / WEA 3.0: Geotargeting-Notfallalarm
  • ATIS-0700036
  • ATIS-0700041
USA Ja
LATAM Brasilien Ja
Chile Ja Die SAE-Anforderungen von Subtel
Kolumbien Ja
Ecuador Ja
Mexiko Ja
Peru Ja SISMATE-Anforderungen

Kontakt

Weitere Informationen oder Fragen zum CellBroadcast-Modul erhalten Sie von der CellBroadcast-Supportgruppe .