Cella di trasmissione

Il modulo CellBroadcast riduce gli sforzi ripetitivi per gli OEM (che a sua volta riduce la frammentazione nell'ecosistema Android e fornisce un comportamento coerente agli utenti finali) e aiuta a semplificare i test e la certificazione dei vettori per i requisiti relativi a CellBroadcast (perché il codice non può essere modificato dagli OEM ). Questo modulo è aggiornabile, il che significa che può ricevere aggiornamenti di funzionalità al di fuori del normale ciclo di rilascio di Android.

Il modulo CellBroadcast è costituito dal seguente servizio e app.

  • La decodifica SMS supporti di servizio CellBroadcastService cell broadcast, Geofencing all'avviso di fili di emergenza (WEA) 3.0, controlli messaggio duplicazione, e trasmettere i messaggi alle applicazioni. È un servizio di messaggistica uno-a-molti geotargettato e georeferenziato progettato per consegnare messaggi a più utenti di telefoni cellulari, in un'area definita, allo stesso tempo. Il servizio è definita dalla ETSI comitato GSM, 3GPP , ed è una parte degli standard di telecomunicazione.

  • L'applicazione CellBroadcastReceiver è un'applicazione di sistema predefinito che avvisi le maniglie di emergenza e non di emergenza (come l'ambra e avvisi presidenziali) e presenta le informazioni agli utenti finali sulla base di supporto e regolamenti regionali.

La figura seguente mostra il flusso di messaggi di CellBroadcast.

Flusso di messaggi di CellBroadcastReceiver

Figura flusso dei messaggi 1. CellBroadcastReceiver

  1. Lo strato di interfaccia radio (RIL) notifichi InBoundSMSHandler circa CDMA / GSM cell broadcast SMS.

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

  3. Dopo che il messaggio è stato elaborato, CellBroadcastService inoltra l'intento all'app CellBroadcastReceiver predefinita del sistema.

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

Formato modulo

Il CellBroadcastService e l'applicazione CellBroadcastReceiver sono compresi in un unico APEX del file ( com.google.android.cellbroadcast ), che è disponibile per dispositivi con Android 11 o superiore. Il modulo comprende codice nel package/app/CellBroadcastReceiver e migra classi quadro esistenti a packages/modules/CellBroadcastService .

Dipendenze del modulo

Interagisce modulo cell broadcast con il quadro utilizzando solo stabile @SystemApi (nessun @hide API) e dipende dalle seguenti librerie statiche.

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

È possibile personalizzare la configurazione utilizzando sovrapposizioni di risorse di runtime (RROs) .

Configurazione dei permessi

Il modulo CellBroadcast è firmato con una firma di Google anziché con una firma della piattaforma, il che significa che il modulo perde l'accesso alle autorizzazioni di firma. Invece, Android 11 definisce la nuova autorizzazione firma com.android.cellbroadcastservice.FULL_ACCESS_CELL_BROADCAST_HISTORY all'interno del modulo cell broadcast; solo i pacchetti nel modulo possono ottenere l'autorizzazione poiché sono firmati con la stessa chiave. Questa autorizzazione consente all'app CellBroadcastReceiver di avere accesso completo al database all'interno di CellBroadcastService.

La piattaforma garantisce i android.permission.READ_CELL_BROADCASTS RunTime permesso di SMS app di sistema predefinito per l'accesso la cronistoria delle segnalazioni di emergenza.

Integrazione del modulo CellBroadcast

Questa sezione descrive come integrare il modulo CellBroadcast.

Integrazione con Impostazioni

È possibile decidere dove integrare impostazioni cell broadcast nella app Impostazioni (gli utenti finali l'accesso pagina cell broadcast impostazioni da Impostazioni> Applicazioni & Notifiche> Avanzate> allarme di emergenza). Per lanciare l'applicazione CellBroadcastReceiver dall'app Impostazioni, modificare le seguenti configurazioni di impostazione con il nome del pacchetto com.google.android.cellbroadcastreceiver .

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

Integrazione con app di messaggistica

Puoi integrare un collegamento all'app nelle app di messaggistica per aprire la cronologia dei messaggi di CellBroadcast. Nell'applicazione di messaggistica Android, questo è stato integrato in Impostazioni> Avanzate> avviso di emergenza. Per integrare un link nel proprio messaggistica app, definire il percorso in app di messaggistica e configurare il nome del componente per il modulo cell broadcast come com.google.android.cellbroadcastreceiver/com.android.cellbroadcastreceiver.CellBroadcastListActivity .

Integrazione con SMS in arrivo

Puoi abilitare la visualizzazione dei messaggi CellBroadcast nell'app di messaggistica predefinita sovrascrivendo la configurazione seguente usando un overlay di risorse di runtime.

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

Poiché la concessione di autorizzazioni è al di fuori del campo di applicazione del modulo di cell broadcast, è necessario concedere l' AppOpsManager.OP_WRITE_SMS autorizzazione al modulo cell broadcast per fornire supporto end-to-end. Per un'implementazione di riferimento AOSP, fare riferimento a questo SmsApplication.java cerotto .

Avvio dell'app CellBroadcastReceiver

L'app CellBroadcastReceiver ha i seguenti punti di avvio.

  • Il menu dell'app Impostazioni.

  • Un'app (incluse app di terze parti) come un'app per i messaggi che si collega alla cronologia dei messaggi di CellBroadcast.

  • (Facoltativo) Un'icona di avvio dalla schermata iniziale di Android aggiunta dall'OEM. Per i dettagli, consultare Aggiunta di un'icona di avvio .

Le schermate seguenti mostrano il menu delle impostazioni dell'app CellBroadcastReceiver.

Menu delle impostazioni dell'app CellBroadcastReceiver

Figura 2. CellBroadcastReceiver menù impostazioni di app

Cronologia avvisi di emergenza

Figura schermo la storia di allarme 3. Emergenza

Aggiunta di icone di avvio

Puoi abilitare l'accesso alla cronologia dei messaggi di CellBroadcast dal launcher dell'app e tramite le tue icone di avvio.

  • Per abilitare l'accesso alla cronologia dei messaggi dall'utilità di avvio dell'app, sovrascrivere la configurazione seguente utilizzando un RRO.

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

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

Abilitazione del codice segreto CMAS

Per abilitare il codice segreto CMAS, * # * # CMAS # * # * (* # * # 2627 # * # * sulla tastiera), un'applicazione dialer deve ascoltare per il codice dialer speciale sotto forma di * # * # code # * # * e gestire il codice utilizzando il metodo pubblico sendDialerSpecialCode .

Requisito di informazioni sull'area: Canale 50

Il canale 50 è un canale speciale per i vettori per trasmettere informazioni relative all'area (ad eccezione di MTN in Sud Africa). Per questo canale, i messaggi di trasmissione non generano una finestra di dialogo popup o una notifica. Invece, i messaggi broadcast vengono visualizzati nello stato della SIM del menu Impostazioni o nella barra di stato (ad esempio, visualizzando un codice postale).

L'implementazione di Android CellBroadcastService fornisce supporto per le seguenti API nel servizio di cell broadcast per le app Settings e SysUI per ottenere le informazioni di trasmissione Channel 50. Per implementare ciò, procedi come segue:

  • Registrati trasmesso android.telephony.action.AREA_INFO_UPDATED e sostituire il nome del pacchetto ricevitore config_area_info_receiver_packages attraverso un RRO.

  • Bind a CellBroadcastService.CELL_BROADCAST_SERVICE_INTERFACE .

Poiché le app Settings e SysUI non rientrano nell'ambito del modulo CellBroadcast, è necessario implementare le modifiche nell'app SystemUI o Settings per fornire supporto end-to-end. Per un'implementazione di riferimento, fare riferimento alla applicazione Impostazioni CellBroadcastService .

personalizzazione

Non è possibile modificare direttamente il codice sorgente del modulo cell broadcast, ma è possibile utilizzare runtime risorse sovrapposizioni (RROs) per abilitare (o disabilitare) i parametri (ad esempio, è possibile personalizzare il colore delle notifiche e delle dimensioni su finestre di dialogo). Per sovrascrivere i valori predefiniti dei parametri utilizzati nel modulo cell broadcast, modificare il nome del pacchetto bersaglio com.google.android.cellbroadcastreceiver . Inoltre:

Se nell'implementazione mancano le risorse di traduzione delle stringhe dell'interfaccia utente o se le traduzioni non soddisfano le tue aspettative, puoi sovrascrivere le risorse di traduzione utilizzando un RRO o collaborare con il team di traduzione di Google per eseguire l'upstream delle traduzioni delle stringhe nel modulo CellBroadcast. In caso di superamento delle risorse di traduzione, Google deve esporre tali stringhe in overlayable.xml per consentire l'override. Se avete bisogno di più configurazioni per la personalizzazione dell'interfaccia utente, entrare in contatto con il gruppo di sostegno cell broadcast .

Migrazione dei dati

Android 11 include un'app CellBroadcast legacy, che è un meccanismo per conservare e migrare i dati delle app (comprese le impostazioni utente e le cronologie degli avvisi di emergenza) per i dispositivi che eseguono l'aggiornamento al modulo CellBroadcast. Le implementazioni Android che utilizzano il modulo CellBroadcast devono includere l'app CellBroadcast legacy nella build per la migrazione dei dati. Se la tua implementazione usa una soluzione CellBroadcast personalizzata, devi definire un APK CellBroadcastContentProvider per preservare i dati (puoi rimuovere in sicurezza l'APK CellBroadcast legacy in una versione successiva).

Sui dispositivi aggiornati a utilizzare il modulo cell broadcast, il modulo recupera i dati sia dalla AOSP LegacyCellBroadcastApp o l'OEM-defined CellBroadcastContentProvider APK attraverso la ben definito cellbroadcast-legacy autorità.

Quando si definisce un APK CellBroadcastContentProvider, l'APK deve seguire queste specifiche.

  • L'APK è un APK senza testa che emerge solo il contenuto del proprio database e SharedPreferences attraverso un ContentProvider oggetto con il cellbroadcast-legacy autorità e non è accessibile alle applicazioni di terze parti.

  • L'APK è sviluppato e di proprietà dell'OEM, dove l'OEM può continuare a ospitare il proprio schema API nascosto.

Migrare SharedPreferences al modulo cell broadcast, il CellBroadcastContentProvider APK deve supportare il ContentProvider.call metodo) 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 il modulo CellBroadcast. I dati provengono da SharedPreferences per la ContentProvider.call metodo.

Per eseguire la migrazione cronologia dei messaggi al modulo cell broadcast, il CellBroadcastContentProvider APK deve supportare il ContentProvider.query metodo con i seguenti parametri:

  • Autorità: @SystemAPI CellBroadcast.LEGACY_CONTENT_URI . Le colonne di query elencano le proprietà dei messaggi supportate per il modulo CellBroadcast. Prende nei dati (dal database) per il ContentProvider.query metodo.

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

test

Android Compatibility Test Suite (CTS) verifica la funzionalità delle API di sistema dipendenti dall'app. È inoltre possibile eseguire il modulo cell broadcast unit tests/testappsp .

Se l'OEM ha attivato il codice segreto CMAS per un dispositivo, quest'ultimo in grado di supportare la modalità di debug con le seguenti caratteristiche.

  • Avvisi di test sono raggruppati sotto Altri Avvisi con una levetta di accensione / spegnimento.

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

  • I messaggi visualizzano tutti i parametri disponibili, compreso il numero di serie, l'ID messaggio e la data di scadenza.

Per abilitare la modalità di debug, comporre * # * # * # # CMAS * sul dialer.

Contatto

Per ulteriori dettagli o domande sul modulo di cell broadcast, contattare il gruppo di supporto cell broadcast .