Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Difusión celular

El módulo CellBroadcast reduce los esfuerzos repetitivos para los OEM (lo que a su vez reduce la fragmentación en todo el ecosistema de Android y proporciona un comportamiento constante a los usuarios finales) y ayuda a optimizar las pruebas y la certificación del operador para los requisitos relacionados con CellBroadcast (porque los OEM no pueden modificar el código ). Este módulo es actualizable, lo que significa que puede recibir actualizaciones de la funcionalidad fuera del ciclo normal de lanzamiento de Android.

El módulo CellBroadcast consta del siguiente servicio y aplicación.

  • El servicio CellBroadcastService admite decodificación de SMS de CellBroadcast, geofencing para alerta inalámbrica de emergencia (WEA) 3.0, verificación de duplicación de mensajes y transmisión de mensajes a aplicaciones. Es un servicio de mensajería de uno a muchos con orientación geográfica y geoperimetraje diseñado para entregar mensajes a múltiples usuarios de teléfonos móviles, en un área definida, al mismo tiempo. El servicio está definido por el comité GSM de ETSI , 3GPP , y forma parte de los estándares de telecomunicaciones.

  • La aplicación CellBroadcastReceiver es una aplicación del sistema predeterminada que maneja alertas de emergencia y que no son de emergencia (como alertas presidenciales y ámbar) y presenta la información a los usuarios finales según las regulaciones regionales y del operador.

La siguiente figura muestra el flujo de mensajes de CellBroadcast.

Flujo de mensajes de CellBroadcastReceiver

Figura 1. Flujo de mensajes de CellBroadcastReceiver

  1. La capa de interfaz de radio (RIL) notifica a InBoundSMSHandler acerca de un SMS de CellBroadcast CDMA / GSM.

  2. El marco reenvía el CellBroadcast SMS al módulo CBS para analizar y procesar el mensaje entrante.

  3. Una vez que se procesa el mensaje, CellBroadcastService reenvía la intención a la aplicación CellBroadcastReceiver predeterminada del sistema.

  4. La aplicación CellBroadcastReceiver muestra el mensaje al usuario.

Formato del módulo

CellBroadcastService y la aplicación CellBroadcastReceiver se incluyen en un solo archivo APEX ( com.google.android.cellbroadcast ), que está disponible para dispositivos con Android 11 o superior. El módulo incluye código en package/app/CellBroadcastReceiver y migra las clases de marco existentes a packages/modules/CellBroadcastService .

Dependencias del módulo

El módulo CellBroadcast interactúa con el marco utilizando solo @SystemApi estable (sin API de @hide ) y depende de las siguientes bibliotecas estáticas.

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

Puede personalizar la configuración mediante superposiciones de recursos en tiempo de ejecución (RRO) .

Configuración de permisos

El módulo CellBroadcast está firmado con una firma de Google en lugar de una firma de plataforma, lo que significa que el módulo pierde acceso a los permisos de firma. En cambio, Android 11 define el nuevo permiso de firma com.android.cellbroadcastservice.FULL_ACCESS_CELL_BROADCAST_HISTORY dentro del módulo CellBroadcast; solo los paquetes del módulo pueden obtener el permiso ya que están firmados con la misma clave. Este permiso permite que la aplicación CellBroadcastReceiver tenga acceso completo a la base de datos dentro de CellBroadcastService.

La plataforma otorga el permiso de tiempo de ejecución android.permission.READ_CELL_BROADCASTS a la aplicación de SMS del sistema predeterminada para acceder al historial de alertas de emergencia.

Integrando el módulo CellBroadcast

Esta sección describe cómo integrar el módulo CellBroadcast.

Integración con la configuración

Puede decidir dónde integrar la configuración de CellBroadcast en la aplicación Configuración (los usuarios finales acceden a la página de configuración de CellBroadcast desde Configuración > Aplicaciones y notificaciones > Avanzado> Alerta de emergencia ). Para iniciar la aplicación CellBroadcastReceiver desde la aplicación Configuración, cambie las siguientes configuraciones de configuración con el nombre de paquete com.google.android.cellbroadcastreceiver .

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

Integración con aplicaciones de mensajería

Puede integrar un enlace de aplicación en aplicaciones de mensajería para abrir el historial de mensajes de CellBroadcast. En la aplicación de mensajería de Android, esto se ha integrado en Configuración > Avanzado > Alerta de emergencia . Para integrar un enlace en su propia aplicación de mensajería, defina la ruta en la aplicación de mensajería y configure el nombre del componente para el módulo CellBroadcast como com.google.android.cellbroadcastreceiver/com.android.cellbroadcastreceiver.CellBroadcastListActivity .

Integración con la bandeja de entrada de SMS

Puede habilitar la visualización de mensajes CellBroadcast en la aplicación de mensajería predeterminada anulando la siguiente configuración usando una superposición de recursos en tiempo de ejecución.

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

Debido a la concesión de permisos está fuera del alcance del módulo de difusión de celda, debe conceder el AppOpsManager.OP_WRITE_SMS permiso para el módulo de difusión de celda para proporcionar soporte de extremo a extremo. Para una implementación de referencia de AOSP, consulte este parche SmsApplication.java .

Iniciar la aplicación CellBroadcastReceiver

La aplicación CellBroadcastReceiver tiene los siguientes puntos de inicio.

  • El menú de la aplicación Configuración.

  • Una aplicación (incluidas las aplicaciones de terceros) como una aplicación de mensajes que se vincula al historial de mensajes de CellBroadcast.

  • (Opcional) Un icono de inicio desde la pantalla de inicio de Android agregado por el OEM. Para obtener más detalles, consulte Agregar un icono de inicio .

Las siguientes capturas de pantalla muestran el menú de configuración de la aplicación CellBroadcastReceiver.

Menú de configuración de la aplicación CellBroadcastReceiver

Figura 2. Menú de configuración de la aplicación CellBroadcastReceiver

Historial de alertas de emergencia

Figura 3. Pantalla del historial de alertas de emergencia

Agregar iconos de lanzamiento

Puede habilitar el acceso al historial de mensajes de CellBroadcast desde el iniciador de aplicaciones y a través de sus propios iconos de inicio.

  • Para habilitar el acceso al historial de mensajes desde el iniciador de aplicaciones, anule la siguiente configuración usando un RRO.

    <item type="bool" name="show_message_history_in_launcher" />
    
  • Para anular el icono predeterminado de AOSP, anule la siguiente configuración utilizando un RRO.

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

Habilitación del código secreto CMAS

Para habilitar el código secreto CMAS, * # * # CMAS # * # * ( * # * # 2627 # * # * en el teclado de marcación), una aplicación de marcación debe escuchar el código de marcación especial en forma de * # * # code # * # * y maneje el código usando el método público sendDialerSpecialCode .

Requisito de información de área: canal 50

El canal 50 es un canal especial para que los operadores transmitan información relacionada con el área (excepto MTN en Sudáfrica). Para este canal, los mensajes de transmisión no generan un cuadro de diálogo emergente ni una notificación. En cambio, los mensajes de difusión aparecen en el estado de la SIM del menú Configuración o en la barra de estado (por ejemplo, mostrando un código postal).

La implementación de Android CellBroadcastService brinda soporte para las siguientes API en el servicio de transmisión celular para las aplicaciones de Configuración y SysUI para obtener la información del Canal 50 de transmisión. Para implementar esto, haga lo siguiente:

  • Registre la transmisión android.telephony.action.AREA_INFO_UPDATED y anule el nombre del paquete del receptor config_area_info_receiver_packages través de un RRO.

  • Enlazar a CellBroadcastService.CELL_BROADCAST_SERVICE_INTERFACE .

Debido a que las aplicaciones Configuración y SysUI están fuera del alcance del módulo CellBroadcast, debe implementar sus cambios en SystemUI o en la aplicación Configuración para brindar soporte de extremo a extremo. Para obtener una implementación de referencia, consulte la aplicación CellBroadcastService Settings .

Personalización

No puede modificar directamente el código fuente del módulo CellBroadcast, pero puede usar superposiciones de recursos en tiempo de ejecución (RRO) para habilitar (o deshabilitar) parámetros (por ejemplo, puede personalizar el color de las notificaciones y las dimensiones en los cuadros de diálogo). Para anular los valores predeterminados de los parámetros utilizados en el módulo CellBroadcast, cambie el nombre del paquete de destino a com.google.android.cellbroadcastreceiver . Adicionalmente:

  • Para obtener una lista de configuraciones superpuestas, consulte overlayable.xml .

  • Para ver una implementación de ejemplo, consulte RROSampleTestApp en AOSP.

Si a la implementación le faltan recursos de traducción de cadenas de la interfaz de usuario o si las traducciones no cumplen con sus expectativas, puede anular los recursos de traducción mediante una RRO o trabajar con el equipo de traducción de Google para realizar traducciones de cadenas al módulo CellBroadcast. Si anula los recursos de traducción, Google debe exponer esas cadenas en overlayable.xml para permitir la anulación. Si necesita más configuraciones para la personalización de la interfaz de usuario, comuníquese con el grupo de soporte de CellBroadcast .

Migrando datos

Android 11 incluye una aplicación CellBroadcast heredada, que es un mecanismo para preservar y migrar los datos de la aplicación (incluida la configuración del usuario y el historial de alertas de emergencia) para dispositivos que se actualizan al módulo CellBroadcast. Las implementaciones de Android que usan el módulo CellBroadcast deben incluir la aplicación CellBroadcast heredada en su compilación para la migración de datos. Si su implementación usa una solución CellBroadcast personalizada, debe definir un APK CellBroadcastContentProvider para preservar los datos (puede eliminar de manera segura el APK de transmisión celular heredado en una versión posterior).

En los dispositivos actualizados para usar el módulo CellBroadcast, el módulo obtiene datos de AOSP LegacyCellBroadcastApp o del APK CellBroadcastContentProvider definido por el OEM a través de la autoridad cellbroadcast-legacy bien definida.

Al definir un APK de CellBroadcastContentProvider, el APK debe seguir estas especificaciones.

  • El APK es un APK sin cabeza que muestra solo el contenido de su base de datos y SharedPreferences través de un objeto ContentProvider con la autoridad cellbroadcast-legacy , y no es accesible para aplicaciones de terceros.

  • El APK es desarrollado y es propiedad del OEM, donde el OEM puede continuar alojando su esquema de API oculto.

Para migrar SharedPreferences al módulo CellBroadcast, el APK de CellBroadcastContentProvider debe admitir el método ContentProvider.call ) con los siguientes parámetros:

  • Autoridad: @SystemAPI CellBroadcast.LEGACY_CONTENT_URI
  • Método: @SystemAPI CellBroadcast.CALL_METHOD_GET_PREFERENCE
  • Arg: @SystemAPI CellBroadcast.Preference

    Esta es una lista de claves de preferencias compartidas admitidas para el módulo CellBroadcast. Los datos provienen de SharedPreferences para el método ContentProvider.call .

Para migrar el historial de mensajes al módulo CellBroadcast, el APK de CellBroadcastContentProvider debe admitir el método ContentProvider.query con los siguientes parámetros:

  • Autoridad: @SystemAPI CellBroadcast.LEGACY_CONTENT_URI . Las columnas de consulta enumeran las propiedades de mensaje admitidas para el módulo CellBroadcast. Toma datos (de su base de datos) para el método ContentProvider.query .

Para obtener una implementación de referencia para CellBroadcastContentProvider, consulte LegacyCellBroadcastContentProvider .

Pruebas

Android Compatibility Test Suite (CTS) verifica la funcionalidad de las API del sistema dependientes de la aplicación. También puede ejecutar unit tests/testappsp módulo unit tests/testappsp .

Si el OEM ha habilitado el código secreto CMAS para un dispositivo, ese dispositivo puede admitir el modo de depuración con las siguientes características.

  • Las alertas de prueba se agrupan en Otras alertas con un interruptor de encendido / apagado.

  • El historial incluye todos los mensajes que se recibieron pero no se mostraron, como mensajes duplicados o mensajes en otro idioma.

  • Los mensajes muestran todos los parámetros disponibles, incluido el número de serie, el ID del mensaje y la fecha de vencimiento.

Para habilitar el modo de depuración, marque * # * # CMAS # * # * en el marcador.

Cumplimiento del módulo

La siguiente tabla describe el cumplimiento de CellBroadcast por región y país.

Región País Cumple con CBS Protocolos implementados
APAC Australia si
Hong Kong si HKCA 3107
India No aplica
(sin requisitos de CBS)
Japón si Sistema de alerta de terremotos y tsunamis (ETWS)
3GPP TS 36.331 V16.0.0
Nueva Zelanda si
República de Corea si KPAS
Taiwán si Sistema de alerta pública (PWS) PLMN10_107.03.12
EMEA Grecia si
Israel si
Italia si
Lituania si
Países Bajos si
Rumania si
Omán si
Rusia si
Arabia Saudita si
Sudáfrica si
pavo si
EAU si
Reino Unido si Especificación del teléfono CellBroadcast HL-v-1.1
Norteamérica Canadá si

Protocolos admitidos:

  • Sistema de alerta móvil comercial (CMAS)
  • WEA 2.0 / WEA 3.0: alerta de emergencia de segmentación geográfica
  • ATIS-0700036
  • ATIS-0700041
Estados Unidos si
LATAM Brasil si
Chile si Requisitos SAE de Subtel
Colombia si
Ecuador si
México si
Perú si Requisitos de SISMATE

Contacto

Para obtener más detalles o preguntas sobre el módulo CellBroadcast, comuníquese con el grupo de soporte de CellBroadcast .