Komunikaty z sieci komórkowej

Moduł CellBroadcast zmniejsza ilość powtarzalnych działań ze strony dostawców OEM (co z kolei zmniejsza fragmentację w ekosystemie Androida i zapewnia spójność użytkowników) oraz usprawnia testowanie przez operatora certyfikacji w odniesieniu do wymagań sieci komórkowej (ponieważ kod nie może być zmodyfikowane przez producentów OEM). Moduł można aktualizować, co oznacza, że może otrzymywać aktualizacje poza normalnym cyklem publikowania wersji Androida.

Format pakietu

Moduł CellBroadcast składa się z poniższej usługi i aplikacji.

  • Usługa CellBroadcastService obsługuje dekodowanie SMS-ów CellBroadcast, geofencing dla alertów o zagrożeniu bezprzewodowym (WEA) 3.0, sprawdzania, czy wiadomości się powtarzają; i przesyłanie wiadomości do aplikacji. To rozwiązanie „jeden do wielu” kierowane geograficznie, usługa przesyłania wiadomości oparta na geofencingu, która umożliwia dostarczanie wiadomości na wiele telefonów komórkowych użytkowników telefonów na określonym obszarze. Usługa jest zdefiniowana przez Komitetu GSM ETSI, 3GPP i jest częścią standardów telekomunikacyjnych.

  • Aplikacja CellBroadcastReceiver to domyślna aplikacja systemowa, która obsługuje alerty o zagrożeniu i powiadomieniach o innych zagrożeniach (np. alerty o bursztynie i alerty prezydenckie); przedstawia użytkownikom informacje w oparciu o operatora i region regulaminu.

Przepływ wiadomości z komunikatów z sieci komórkowej

Poniższy rysunek przedstawia przepływ wiadomości CellBroadcast.

Przepływ wiadomości CellBroadcastReceiver

Rysunek 1. Przepływ wiadomości CellBroadcastReceiver

  1. Warstwa interfejsu radiowego (RIL) powiadamia InBoundSMSHandler o CDMA/GSM Komunikaty SMS z sieci komórkowej.

  2. Struktura przekazuje SMS-a CellBroadcast do modułu CBS, przetworzyć przychodzącą wiadomość.

  3. Po przetworzeniu wiadomości CellBroadcastService przekazuje intencję do domyślną w systemie aplikacji CellBroadcastReceiver.

  4. Aplikacja CellBroadcastReceiver wyświetli wiadomość użytkownikowi.

Format modułu

Usługi CellBroadcastService i aplikacja CellBroadcastReceiver znajdują się pojedynczy plik APEX (com.android.cellbroadcast), która jest dostępna na urządzeniach z Androida 11 lub nowszego, Moduł zawiera kod w package/app/CellBroadcastReceiver i przenosi istniejące klasy platformy do packages/modules/CellBroadcastService

Zależności modułu

Moduł CellBroadcast współpracuje ze strukturą tylko przy użyciu stabilnej @SystemApi (brak interfejsów API @hide) i korzysta z podanych niżej bibliotek statycznych.

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

Konfigurację możesz dostosować za pomocą nakładek zasobów środowiska wykonawczego (RRO).

Konfiguracja uprawnień

Moduł CellBroadcast jest podpisany podpisem Google, a nie platformą. podpis, co oznacza, że moduł utraci dostęp do uprawnień do podpisywania. Zamiast tego Android 11 definiuje nowy podpis. uprawnienie com.android.cellbroadcastservice.FULL_ACCESS_CELL_BROADCAST_HISTORY w module CellBroadcast; tylko pakiety w module mogą uzyskać bo są podpisane tym samym kluczem. To uprawnienie zezwala na aplikacji CellBroadcastReceiver, aby mieć pełny dostęp do wewnątrz bazy danych Usługa CellBroadcastService.

Platforma udostępnia środowisko wykonawcze android.permission.READ_CELL_BROADCASTS uprawnienia domyślnej aplikacji do SMS-ów systemowych w celu uzyskania dostępu do historii sytuacji alarmowych alertów.

Zintegruj moduł CellBroadcast

W tej sekcji opisano sposób integracji modułu komunikatów z sieci komórkowej.

Integracja z Ustawieniami

W aplikacji Ustawienia możesz określić, gdzie chcesz zintegrować ustawienia komunikatów z sieci komórkowej (użytkownicy końcowi mogą otworzyć stronę ustawień komunikatów z sieci komórkowej, klikając Ustawienia > Aplikacje i Powiadomienia > Zaawansowane > Alert o zagrożeniu). Aby uruchomić w aplikacji Ustawienia CellBroadcastReceiver zmień ustawianie konfiguracji o nazwie pakietu, com.android.cellbroadcastreceiver

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

Integracja z aplikacjami do obsługi wiadomości

Możesz zintegrować link do aplikacji z komunikatorami, aby otworzyć CellBroadcast historię wiadomości. W aplikacji Wiadomości na Androida ta funkcja została zintegrowana Ustawienia > Zaawansowane > Alert o zagrożeniu. Aby zintegrować link w usłudze należy zdefiniować ścieżkę w aplikacji do obsługi wiadomości i skonfigurować jako nazwę komponentu com.android.cellbroadcastreceiver/com.android.cellbroadcastreceiver.CellBroadcastListActivity

Integracja ze skrzynką odbiorczą SMS-ów

Aby włączyć wyświetlanie komunikatów CellBroadcast w domyślnej aplikacji do obsługi wiadomości, przez zastąpienie poniższej konfiguracji przy użyciu nakładki zasobów środowiska wykonawczego.

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

Ze względu na to, że przyznanie uprawnień wykracza poza zakres modułu komunikatów komórkowych, musisz przyznać uprawnienie AppOpsManager.OP_WRITE_SMS do komunikatów z sieci komórkowej , który zapewnia kompleksową pomoc. W przypadku implementacji referencyjnej AOSP: zapoznaj się z tym SmsApplication.java poprawkę.

Uruchom aplikację CellBroadcastReceiver

Oto punkty uruchomienia aplikacji CellBroadcastReceiver.

  • Menu aplikacji Ustawienia.

  • Aplikacja (w tym aplikacje innych firm), np. aplikacja do obsługi wiadomości, która prowadzi do Historia wiadomości z komunikatów z sieci komórkowej.

  • (Opcjonalnie) Ikona uruchamiania na ekranie głównym Androida dodana przez producenta OEM. Szczegółowe informacje znajdziesz w sekcji Dodawanie ikony uruchamiania.

Ustawienia aplikacji CellBroadcastReceiver

Na poniższych zrzutach ekranu widać menu ustawień aplikacji CellBroadcastReceiver.

Menu ustawień aplikacji CellBroadcastReceiver

Rysunek 2. Menu ustawień aplikacji CellBroadcastReceiver

Historia alertów o zagrożeniu

Rysunek 3. Ekran historii alertów o zagrożeniu

Dodaj ikony uruchamiania

Możesz zezwolić na dostęp do historii wiadomości CellBroadcast w menu z aplikacjami i za pomocą własnych ikon uruchamiania.

  • Aby umożliwić dostęp do historii wiadomości z menu z aplikacjami, zastąp tę konfigurację za pomocą RRO.

    <item type="bool" name="show_message_history_in_launcher" />
    
  • Aby zastąpić domyślną ikonę AOSP, zastąp poniższą konfigurację za pomocą RRO.

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

Włączanie tajnego kodu CMAS

Aby włączyć tajny kod CMAS, *#*#CMAS#*#* (*#*#2627#*#* w klawiatury numerycznej), aplikacja telefonu musi nasłuchiwać specjalnego kodu telefonu w postaci *#*#code#*#* i obsługuj kod metodą publiczną. sendDialerSpecialCode

Wymagania dotyczące informacji o obszarze: kanał 50

Channel 50 to specjalny kanał dla operatorów sieci komórkowych, który umożliwia nadawanie treści związanych z określonym obszarem. (z wyjątkiem MTN w RPA). Na tym kanale: nie skutkują wyświetleniem okna lub powiadomienia. Zamiast tego prześlij są wyświetlane w stanie karty SIM menu Ustawienia lub na pasku stanu (na przykład wyświetlania kodu pocztowego).

Implementacja usługi Android CellBroadcastService obsługuje następujące interfejsy API w usłudze komunikatów z sieci komórkowej dla aplikacji Settings i SysUI, uzyskać informacje o kanale 50 transmisji. Aby to zrobić:

  • Zarejestruj transmisję android.telephony.action.AREA_INFO_UPDATED i zastąp nazwę pakietu odbiorcy config_area_info_receiver_packages za pośrednictwem RRO.

  • Powiąż z elementem CellBroadcastService.CELL_BROADCAST_SERVICE_INTERFACE.

Ponieważ aplikacje Settings i SysUI wykraczają poza zakres komunikatów z sieci komórkowej należy wprowadzić zmiany w interfejsie SystemUI lub aplikacji Ustawienia, i zapewniać kompleksową pomoc. Więcej informacji o implementacji znajdziesz tutaj: Ustawienia usługi CellBroadcastService

Dostosowywanie

Nie możesz bezpośrednio modyfikować kodu źródłowego modułu CellBroadcast, można używać nakładek zasobów środowiska wykonawczego (RRO) na włączanie (lub wyłączanie) parametrów (możesz na przykład dostosować kolor powiadomień wymiarów w oknach dialogowych). Aby zastąpić domyślne wartości parametrów używanych w funkcji w module Telewizja komórkowa zmień nazwę pakietu na com.android.cellbroadcastreceiver Ponadto:

Jeśli w implementacji brakuje zasobów do translacji ciągów znaków interfejsu lub jeśli tłumaczenie nie spełnia Twoich oczekiwań, możesz je zastąpić, zasobów przy użyciu RRO lub współpracy z zespołem tłumaczeniowym Google, tłumaczenia ciągów znaków do modułu CellBroadcast. Jeśli zastąpisz tłumaczenie zasobów, Google musi udostępnić te ciągi w funkcji overlayable.xml, aby umożliwić i zastępować. Jeśli potrzebujesz dodatkowych konfiguracji interfejsu użytkownika, skontaktuj się z z grupą pomocy sieci komórkowej.

Przenieś dane

Android 11 zawiera starszą wersję aplikacji CellBroadcast, to mechanizm zachowywania i przenoszenia danych aplikacji (w tym ustawień użytkownika historie alertów o zagrożeniu) dla urządzeń uaktualnianych do modułu komunikatów z sieci komórkowej. Implementacje na Androida, które korzystają z modułu CellBroadcast, powinny zawierać starszych wersji aplikacji CellBroadcast do migracji danych. Jeśli korzysta z niestandardowego rozwiązania CellBroadcast, określ Plik APK CellBroadcastContentProvider do zachowania danych (możesz bezpiecznie usunąć starszej wersji pakietu APK do transmisji z sieci komórkowej).

Z urządzeń z uaktualnionym modułem transmisji danych moduł pobiera dane. z aplikacji AOSP LegacyCellBroadcastApp lub Zdefiniowany przez OEM plik APK CellBroadcastContentProvider cellbroadcast-legacy urzędu.

Użyj zdefiniowanego przez OEM pliku APK CellBroadcastContentProvider

Podczas definiowania pliku APK CellBroadcastContentProvider plik APK musi spełniać te wymagania: specyfikacji.

  • Plik APK jest plikiem APK bez interfejsu graficznego, który wyświetla tylko zawartość bazy danych oraz SharedPreferences. przez ContentProvider. obiekt z urzędem certyfikacji cellbroadcast-legacy i nie jest dostępny z aplikacjami innych firm.

  • Plik APK został opracowany i należy do producenta OEM, który może nadal i hostować ukryty schemat interfejsu API.

Aby przenieść usługę SharedPreferences do modułu komunikatów z sieci komórkowej, Plik APK CellBroadcastContentProvider musi obsługiwać ContentProvider.call). z następującymi parametrami:

  • Urząd: @SystemAPI CellBroadcast.LEGACY_CONTENT_URI
  • Metoda: @SystemAPI CellBroadcast.CALL_METHOD_GET_PREFERENCE
  • Arg: @SystemAPI CellBroadcast.Preference

    To jest lista obsługiwanych udostępnionych kluczy preferencji na potrzeby transmisji komórkowej . Dane pochodzą z usługi SharedPreferences i dotyczą ContentProvider.call. .

Aby przenieść historię wiadomości do modułu komunikatów z sieci komórkowej, Plik APK CellBroadcastContentProvider musi obsługiwać ContentProvider.query z tymi parametrami:

  • Urząd: @SystemAPI CellBroadcast.LEGACY_CONTENT_URI. Kolumny zapytań wyświetlić listę właściwości wiadomości obsługiwanych przez moduł CellBroadcast. Pobiera dane (z Twojej bazy danych) dla metody ContentProvider.query.

Informacje o implementacji referencyjnej dla CellBroadcastContentProvider, znajdziesz tutaj: LegacyCellBroadcastContentProvider

Testowanie

Android Compatibility Test Suite (CTS) weryfikuje funkcjonalność API w systemach zależnych od aplikacji. Możesz też uruchomić moduł komunikatów z sieci komórkowej. unit tests/testappsp

Jeśli producent OEM włączył tajny kod systemu CMAS na urządzeniu, urządzenie może obsługiwać tryb debugowania z tymi funkcjami.

  • Alerty testowe są pogrupowane w sekcji Inne alerty z przełącznikiem umożliwiającym włączenie lub wyłączenie.

  • Historia obejmuje wszystkie wiadomości, które zostały odebrane, ale nie zostały wyświetlone. Przykłady: duplikaty wiadomości lub wiadomości w innym języku.

  • Wiadomości wyświetlają wszystkie dostępne parametry, w tym numer seryjny, komunikat dokumentu tożsamości i datę ważności.

Aby włączyć tryb debugowania, wybierz na telefonie numer *#*#CMAS#*#*.

Kontakt

Aby uzyskać więcej informacji lub odpowiedzi na pytania dotyczące modułu Telewizja komórkowa, skontaktuj się z Grupa pomocy CellBroadcast.