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.
Rysunek 1. Przepływ wiadomości CellBroadcastReceiver
Warstwa interfejsu radiowego (RIL) powiadamia
InBoundSMSHandler
o CDMA/GSM Komunikaty SMS z sieci komórkowej.Struktura przekazuje SMS-a CellBroadcast do modułu CBS, przetworzyć przychodzącą wiadomość.
Po przetworzeniu wiadomości CellBroadcastService przekazuje intencję do domyślną w systemie aplikacji CellBroadcastReceiver.
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.
Rysunek 2. Menu ustawień aplikacji CellBroadcastReceiver
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 odbiorcyconfig_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:
Listę konfiguracji z nakładaniem znajdziesz tutaj:
overlayable.xml
Przykładową implementację znajdziesz tutaj:
RROSampleTestApp
w AOSP.
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
. przezContentProvider
. obiekt z urzędem certyfikacjicellbroadcast-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 metodyContentProvider.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.