Cellulare

Il modulo CellBroadcast riduce gli sforzi ripetitivi per gli OEM (che a loro volta riduce la frammentazione nell'ecosistema Android e fornisce coerenza comportamento degli utenti finali) e contribuisce a semplificare i test e i test dell'operatore per i requisiti relativi a CellBroadcast (perché il codice non può modificati dagli OEM). Questo modulo è aggiornabile, il che significa che può ricevere aggiornamenti al di fuori del normale ciclo di rilascio di Android.

Formato del pacchetto

Il modulo CellBroadcast è costituito dal servizio e dall'app seguenti.

  • Il servizio CellBroadcastService supporta la decodifica SMS di CellBroadcast, geofencing per avvisi di emergenza wireless (WEA) 3.0, controlli della duplicazione dei messaggi, e la trasmissione di messaggi alle app. È una strategia di targeting geografico one-to-many servizio di messaggistica con geofencing progettato per recapitare messaggi a più dispositivi mobili utenti di smartphone in un'area definita. Il servizio è definito il comitato ETSI GSM, 3GPP, e fa parte del standard per le telecomunicazioni.

  • L'app CellBroadcastReceiver è un'app di sistema predefinita che gestisce avvisi di emergenza e di nessuna emergenza (ad esempio allerte ambra e presidenziali) e presenta le informazioni agli utenti finali in base all'operatore e all'area geografica in materia.

Flusso di messaggi CellBroadcast

La figura seguente mostra il flusso di messaggi CellBroadcast.

Flusso di messaggi di CellBroadcastReceiver

Figura 1. Flusso di messaggi di CellBroadcastReceiver

  1. Il Radio Interface Layer (RIL) avvisa InBoundSMSHandler di una CDMA/GSM SMS cellBroadcast.

  2. Il framework inoltra l'SMS CellBroadcast al modulo CBS per analizzare e per elaborare il messaggio in arrivo.

  3. Dopo l'elaborazione del messaggio, CellBroadcastService inoltra l'intent a l'app CellBroadcastRicevir predefinita di sistema.

  4. L'app CellBroadcastReceiver mostra il messaggio all'utente.

Formato del modulo

L'app CellBroadcastService e l'app CellBroadcastReceiver sono incluse in un singolo file APEX (com.android.cellbroadcast), disponibile per i dispositivi con Android 11 o versioni successive. Il modulo include il codice package/app/CellBroadcastReceiver ed esegue la migrazione delle classi di framework esistenti a packages/modules/CellBroadcastService.

Dipendenze del modulo

Il modulo CellBroadcast interagisce con il framework utilizzando solo @SystemApi (nessuna API @hide) e dipende dalle librerie statiche riportate di seguito.

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

Puoi personalizzare la configurazione utilizzando gli overlay delle risorse di runtime (RRO).

Configurazione autorizzazioni

Il modulo CellBroadcast è firmato con una firma di Google anziché con una piattaforma. firma, il che significa che il modulo perde l'accesso alle autorizzazioni di firma. Android 11 definisce invece la nuova firma autorizzazione com.android.cellbroadcastservice.FULL_ACCESS_CELL_BROADCAST_HISTORY all'interno del modulo CellBroadcast; solo i pacchetti del modulo possono ricevere perché sono firmati con la stessa chiave. Questa autorizzazione consente L'app CellBroadcastRicevir per avere accesso completo al database all'interno CellBroadcastService.

La piattaforma concede il runtime android.permission.READ_CELL_BROADCASTS autorizzazione all'app SMS di sistema predefinita per accedere alla cronologia delle emergenze avvisi.

Integra il modulo CellBroadcast

Questa sezione descrive come integrare il modulo CellBroadcast.

Integrazione con le impostazioni

Puoi decidere dove integrare le impostazioni di CellBroadcast nell'app Impostazioni (gli utenti finali accedono alla pagina delle impostazioni di CellBroadcast da Impostazioni > App e Notifiche > Avanzate > avviso di emergenza). Per avviare dell'app CellBroadcastReceiver dall'app Impostazioni, modifica quanto segue l'impostazione delle configurazioni con il nome del pacchetto com.android.cellbroadcastreceiver.

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

Integrazione con app di messaggistica

Puoi integrare il link di un'app nelle app di messaggistica per aprire CellBroadcast cronologia dei messaggi. Nell'app Android Messaging, questa funzionalità è stata integrata Impostazioni > Avanzate > Avviso di emergenza. Per integrare un link in la tua app di messaggistica, definisci il percorso nell'app di messaggistica e configura nome del componente per il modulo CellBroadcast come com.android.cellbroadcastreceiver/com.android.cellbroadcastreceiver.CellBroadcastListActivity.

Integra con la Posta in arrivo SMS

Puoi attivare la visualizzazione dei messaggi CellBroadcast nell'app di messaggistica predefinita eseguendo l'override della configurazione seguente mediante un overlay di risorse di runtime.

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

Poiché la concessione delle autorizzazioni non rientra nell'ambito del modulo CellBroadcast, devi concedere l'autorizzazione AppOpsManager.OP_WRITE_SMS a CellBroadcast per fornire assistenza end-to-end. Per un'implementazione di riferimento AOSP, consulta questo SmsApplication.java o una patch.

Avvia l'app CellBroadcastReceiver

L'app CellBroadcastReceiver ha i seguenti punti di lancio.

  • Il menu dell'app Impostazioni.

  • Un'app (incluse le app di terze parti), ad esempio un'app di messaggi con link a Cronologia dei messaggi di CellBroadcast.

  • (Facoltativo) Un'icona di avvio dalla schermata Home di Android aggiunta dall'OEM. Per maggiori dettagli, vedi Aggiungere un'icona di lancio.

Impostazioni dell'app CellBroadcastReceiver

I seguenti screenshot mostrano il menu delle impostazioni dell'app CellBroadcastReceiver.

Menu delle impostazioni dell&#39;app CellBroadcastReceiver

Figura 2. Menu delle impostazioni dell'app CellBroadcastReceiver

Cronologia avvisi di emergenza

Figura 3. Schermata Cronologia avvisi di emergenza

Aggiungi icone di avvio

Puoi abilitare l'accesso alla cronologia dei messaggi di CellBroadcast da Avvio applicazioni e tramite le tue icone di lancio.

  • Per consentire l'accesso alla cronologia dei messaggi da Avvio applicazioni, sostituisci la la configurazione seguente utilizzando un RRO.

    <item type="bool" name="show_message_history_in_launcher" />
    
  • Per eseguire l'override dell'icona predefinita AOSP, sostituisci la configurazione seguente utilizzando un RRO.

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

Abilita il codice secret CMAS

Per abilitare il codice segreto CMAS, *#*#CMAS#*#* (*#*#2627#*#* nella tastierino), un'app Telefono deve rilevare il codice speciale del telefono sotto forma di *#*#code#*#* e gestire il codice utilizzando il metodo pubblico. sendDialerSpecialCode.

Requisito per le informazioni sull'area: canale 50

Il canale 50 è un canale speciale utilizzato dagli operatori per le aree di trasmissione. informazioni (ad eccezione dell'MTN in Sudafrica). Per questo canale, trasmetti messaggi non comportano la visualizzazione di una finestra di dialogo o di una notifica. Trasmetti invece vengono visualizzati nello stato della SIM del menu Impostazioni o nella barra di stato (ad ad esempio la visualizzazione di un codice postale).

L'implementazione di Android CellBroadcastService fornisce supporto per le seguenti API nel servizio cell broadcast per le app Impostazioni e SysUI ottenere le informazioni di Channel 50. Per implementarlo:

  • Registra la trasmissione android.telephony.action.AREA_INFO_UPDATED e sostituiscila il nome del pacchetto destinatario config_area_info_receiver_packages tramite un RRO.

  • Associa a CellBroadcastService.CELL_BROADCAST_SERVICE_INTERFACE.

Poiché le app Impostazioni e SysUI non rientrano nell'ambito di CellBroadcast devi implementare le modifiche nell'UI di sistema o nell'app Impostazioni per e fornire assistenza end-to-end. Per un'implementazione di riferimento, consulta le Impostazioni diCellBroadcastService Google Cloud.

Personalizzazione

Non puoi modificare direttamente il codice sorgente del modulo CellBroadcast, possono utilizzare gli overlay delle risorse di runtime (RRO) a abilitare (o disabilitare) parametri (ad esempio, puoi personalizzare il colore delle notifiche e dimensioni nelle finestre di dialogo). Per eseguire l'override dei valori predefiniti dei parametri utilizzati in modulo CellBroadcast, modifica il nome del pacchetto di destinazione in com.android.cellbroadcastreceiver. Inoltre:

Se nell'implementazione mancano le risorse di traduzione delle stringhe dell'UI o se le traduzioni non soddisfano le tue aspettative, puoi sostituire la traduzione utilizzando un RRO o collabora con il team di traduzione di Google per l'upstream le traduzioni di stringhe al modulo CellBroadcast. Se sostituisci la traduzione di risorse, Google deve esporre queste stringhe in overlayable.xml per consentire con override. Se hai bisogno di ulteriori configurazioni per la personalizzazione della UI, contatta il gruppo di assistenza di CellBroadcast.

Esegui migrazione dati

Android 11 include un'app precedente di CellBroadcast, è un meccanismo per conservare ed eseguire la migrazione dei dati dell'app (incluse le impostazioni utente e cronologie degli avvisi di emergenza) per i dispositivi in fase di upgrade al modulo CellBroadcast. Le implementazioni Android che utilizzano il modulo CellBroadcast devono includere il nella versione precedente di CellBroadcast per la migrazione dei dati. Se le tue per l'uso di una soluzione CellBroadcast personalizzata, è necessario definire dell'APK CellBroadcastContentProvider per conservare i dati (puoi rimuovere l'APK cell broadcast precedente in una release successiva).

Sui dispositivi di cui è stato eseguito l'upgrade per utilizzare il modulo CellBroadcast, il modulo recupera i dati da AOSP LegacyCellBroadcastApp o L'APK CellBroadcastContentProvider definito dall'OEM tramite il modello ben definito Autorità cellbroadcast-legacy.

Utilizza un APK CellBroadcastContentProvider definito dall'OEM

Quando viene definito un APK CellBroadcastContentProvider, l'APK deve rispettare le seguenti specifiche.

  • L'APK è un APK headless che mostra solo i contenuti del suo database e SharedPreferences: tramite un ContentProvider con l'autorità cellbroadcast-legacy e non è accessibile alle app di terze parti.

  • L'APK è sviluppato e di proprietà dell'OEM, dove quest'ultimo può continuare a ospitare lo schema API nascosto.

Per eseguire la migrazione di SharedPreferences al modulo CellBroadcast, L'APK CellBroadcastContentProvider deve supportare la classe ContentProvider.call) con i seguenti parametri:

  • Autorità: @SystemAPI CellBroadcast.LEGACY_CONTENT_URI
  • Metodo: @SystemAPI CellBroadcast.CALL_METHOD_GET_PREFERENCE
  • Arg: @SystemAPI CellBroadcast.Preference

    Questo è un elenco di chiavi di preferenza condivise supportate per CellBroadcast in maggior dettaglio più avanti in questo modulo. I dati provengono da SharedPreferences per ContentProvider.call .

Per eseguire la migrazione della cronologia dei messaggi al modulo CellBroadcast, L'APK CellBroadcastContentProvider deve supportare la classe ContentProvider.query con i seguenti parametri:

  • Autorità: @SystemAPI CellBroadcast.LEGACY_CONTENT_URI. Colonne delle query elencare le proprietà dei messaggi supportate per il modulo CellBroadcast. Acquisisce i dati (dal tuo database) per il metodo ContentProvider.query.

Per un'implementazione di riferimento per CellBroadcastContentProvider, consulta LegacyCellBroadcastContentProvider.

Test

La suite per il test di compatibilità Android (Android Compatibility Test Suite, CTS) verifica la funzionalità di le API di sistema che dipendono dall'app. Puoi anche eseguire il modulo CellBroadcast unit tests/testappsp

Se l'OEM ha attivato il codice segreto CMAS per un dispositivo, dispositivo può supportare la modalità di debug con le seguenti funzionalità.

  • Gli avvisi di prova sono raggruppati in Altri avvisi con un pulsante di attivazione/disattivazione.

  • La cronologia include tutti i messaggi ricevuti ma non visualizzati, ad esempio: messaggi duplicati o messaggi in un'altra lingua.

  • I messaggi mostrano tutti i parametri disponibili, tra cui numero di serie, messaggio ID e data di scadenza.

Per attivare la modalità di debug, componi *#*#CMAS#*#* sulla tastiera.

Contatto

Per ulteriori dettagli o domande sul modulo CellBroadcast, contatta il Gruppo di assistenza di CellBroadcast.