Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

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.

  • La decodificación SMS soportes de servicios CellBroadcastService difusión de celda, Geofencing para la alerta de emergencia inalámbrico (WEA) 3,0, cheques mensaje de duplicación, y mensajes de difusión 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 es definido por el ETSI comité de GSM, 3GPP , y es una parte de las normas de telecomunicaciones.

  • La aplicación CellBroadcastReceiver es una aplicación del sistema por defecto que las alertas de asas de emergencia y de no emergencia (como el ámbar y alertas presidenciales) y presenta la información a los usuarios finales sobre la base de soporte y reglamentos regionales.

La siguiente figura muestra el flujo de mensajes de CellBroadcast.

Flujo de mensajes de CellBroadcastReceiver

Figura flujo de mensajes 1. CellBroadcastReceiver

  1. La capa de interfaz de radio (RIL) notifica InBoundSMSHandler sobre un CDMA / GSM difusión de celda SMS.

  2. El marco reenvía el SMS CellBroadcast 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

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

Dependencias del módulo

Los interactúa módulo de difusión de celda con el marco usando sólo estable @SystemApi (no @hide API) y depende de las bibliotecas estáticas siguientes.

  • 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 el acceso a los permisos de firma. En su lugar, Android 11 define el nuevo permiso firma com.android.cellbroadcastservice.FULL_ACCESS_CELL_BROADCAST_HISTORY en el interior del módulo de difusión de celda; 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 los android.permission.READ_CELL_BROADCASTS runtime permiso a la aplicación SMS del sistema por defecto 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 configuración difusión de celda en la aplicación Ajustes (usuarios finales acceden a la página de la difusión de celda configuración de Ajustes> Aplicaciones y Notificaciones> Avanzado> Alerta de Emergencia). Para lanzar la aplicación CellBroadcastReceiver de la aplicación de configuración, cambiar las siguientes configuraciones de ajuste con el nombre del 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 Android, esto se ha integrado en Configuración> Avanzada> Alerta de emergencia. Para integrar un enlace en su propia aplicación de mensajería, definir la ruta de la aplicación de mensajería y configurar el nombre del componente para el módulo de difusión de celda 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 AOSP, consulte este SmsApplication.java parche .

Inicio de 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 más detalles, consulte Adición de 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. CellBroadcastReceiver menú de configuración de la aplicación

Historial de alertas de emergencia

Figura pantalla del historial de alerta de emergencia 3.

Agregar iconos de inicio

Puede habilitar el acceso al historial de mensajes de CellBroadcast desde el iniciador de aplicaciones y a través de sus propios íconos 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 mediante un RRO.

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

Habilitación del código secreto CMAS

Para activar el código secreto de la CMAS, * # * # CMAS # * # * (* # * # 2627 # * # * en el teclado de marcación), una aplicación de marcación deberá detectar el código de marcación especial en forma de * # * # code # * # * y manejar el código utilizando 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 dan como resultado un cuadro de diálogo emergente o 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 proporciona soporte para las siguientes API en el servicio de transmisión celular para las aplicaciones Configuración y SysUI para obtener la información del Canal 50 de transmisión. Para implementar esto, haga lo siguiente:

  • Registro transmitido android.telephony.action.AREA_INFO_UPDATED y sobrescribir el nombre del paquete de receptor config_area_info_receiver_packages a través de una RRO.

  • Se unen 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 la aplicación Configuración para brindar soporte de extremo a extremo. Para una implementación de referencia, se refieren a la aplicación de configuración CellBroadcastService .

Personalización

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

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 usando una RRO o trabajar con el equipo de traducción de Google para transmitir las traducciones de cadenas al módulo CellBroadcast. Si reemplaza los recursos de traducción, Google debe exponer esas cadenas en overlayable.xml para permitir anular. Si usted necesita más configuraciones para personalizar la interfaz de usuario, llegar al grupo de apoyo difusión de celda .

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 utilizan 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 utiliza 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 utilizar el módulo de difusión de celda, el módulo obtiene datos o bien de la LegacyCellBroadcastApp AOSP o el definido OEM CellBroadcastContentProvider APK a través de la bien definida cellbroadcast-legacy autoridad.

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

  • El APK es un APK sin cabeza que las superficies sólo el contenido de su base de datos y SharedPreferences a través de un ContentProvider objeto con la cellbroadcast-legacy autoridad, y no se puede acceder a 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 de difusión de celda, la CellBroadcastContentProvider APK debe soportar el ContentProvider.call método) 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 ContentProvider.call método.

Para migrar el historial de mensajes al módulo de difusión de celda, el CellBroadcastContentProvider APK debe ser compatible con el ContentProvider.query método con los parámetros siguientes:

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

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

Pruebas

El conjunto de pruebas de compatibilidad de Android (CTS) verifica la funcionalidad de las API del sistema dependientes de la aplicación. También puede ejecutar módulo de difusión de celda unit tests/testappsp .

Si el fabricante ha permitido que el código secreto de la CMAS para un dispositivo, ese dispositivo puede soportar el modo de depuración con las siguientes características.

  • Alertas de prueba se agrupan en otras alertas con un conmutador 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 activar el modo de depuración, marque * # * # * # # CMAS * en el marcador.

Contacto

Para más información o preguntas sobre el módulo de difusión de celda, en contacto con el grupo de apoyo difusión de celda .