Diffusion cellulaire

Le module CellBroadcast réduit les efforts répétitifs des OEM (qui, à leur tour, réduit la fragmentation dans l'écosystème Android et offre une cohérence aux utilisateurs finaux) et permet de simplifier les tests et les pour les exigences liées à CellBroadcast (parce que le code ne peut pas être modifiées par les OEM). Ce module peut être mis à jour, c'est-à-dire qu'il peut recevoir des mises à jour en dehors du cycle de publication normal d'Android.

Format du package

Le module CellBroadcast comprend le service et l'application suivants.

  • Le service CellBroadcastService prend en charge le décodage SMS de CellBroadcast, le géorepérage pour l'alerte d'urgence sans fil (WEA) 3.0, la vérification de la duplication des messages, et la diffusion de messages aux applications. Il s'agit d'un réseau à ciblage géographique service de messagerie avec géorepérage conçu pour distribuer des messages vers plusieurs d'utilisateurs de téléphones, dans une zone définie, en même temps. Le service est défini par le comité GSM ETSI, 3GPP, et fait partie du en matière de normes de télécommunication.

  • L'application CellBroadcastReceiver est une application système par défaut qui gère les alertes d'urgence et de non-urgence (alertes orange et présidentielles, par exemple) ; Présente les informations aux utilisateurs finaux en fonction de l'opérateur et de la région réglementaires.

Flux des messages CellBroadcast

La figure suivante illustre le flux de messages CellBroadcast.

Flux des messages CellBroadcastReceiver

Figure 1 : Flux des messages CellBroadcastReceiver

  1. La couche d'interface radio (RIL) informe InBoundSMSHandler de l'existence d'une connexion CDMA/GSM CellBroadcast SMS.

  2. Le framework transmet le SMS CellBroadcast au module CBS pour analyser et traiter le message entrant.

  3. Une fois le message traité, CellBroadcastService transmet l'intent à l'application CellBroadcastReceiver par défaut du système.

  4. L'application CellBroadcastReceiver affiche le message à l'utilisateur.

Format du module

Le CellBroadcastService et l'application CellBroadcastReceiver sont inclus dans un fichier APEX unique (com.android.cellbroadcast), qui est disponible pour les appareils Android 11 ou version ultérieure Le module inclut du code package/app/CellBroadcastReceiver et migre les classes de framework existantes vers packages/modules/CellBroadcastService

Dépendances des modules

Le module CellBroadcast interagit avec le framework en utilisant uniquement des @SystemApi (pas d'API @hide) et dépend des bibliothèques statiques suivantes.

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

Vous pouvez personnaliser la configuration à l'aide de superpositions de ressources d'exécution (RRO).

Configuration des autorisations

Le module CellBroadcast est signé avec une signature Google au lieu d'une plateforme signature, ce qui signifie que le module n'a plus accès aux autorisations de signature. Au lieu de cela, Android 11 définit la nouvelle signature autorisation com.android.cellbroadcastservice.FULL_ACCESS_CELL_BROADCAST_HISTORY dans le module CellBroadcast ; seuls les packages du module peuvent obtenir car ils sont signés avec la même clé. Cette autorisation permet au L'application CellBroadcastReceiver dispose d'un accès complet à la base de données qu'elle contient CellBroadcastService.

La plate-forme accorde l'environnement d'exécution android.permission.READ_CELL_BROADCASTS. autorisation d'accéder à l'historique des situations d'urgence à l'application SMS système par défaut alertes.

Intégrer le module CellBroadcast

Cette section explique comment intégrer le module CellBroadcast.

Intégrer avec les paramètres

Vous pouvez choisir où intégrer les paramètres de CellBroadcast dans l'application Paramètres (Les utilisateurs finaux accèdent à la page des paramètres de CellBroadcast sous Settings > Applications et Notifications > Paramètres avancés > (Alerte d'urgence)). Pour lancer l'application CellBroadcastReceiver depuis l'application Paramètres, modifiez les éléments suivants définir des configurations avec le nom du package com.android.cellbroadcastreceiver

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

Intégration aux applications de chat

Vous pouvez intégrer un lien d'application dans des applications de chat pour ouvrir CellBroadcast de l'historique des messages. Dans l'application de messagerie Android, cette fonctionnalité a été intégrée Paramètres > Paramètres avancés > Alerte d'urgence. Pour intégrer un lien dans votre propre application de chat, définissez le chemin d'accès dans cette application et configurez nom du composant du module CellBroadcast comme com.android.cellbroadcastreceiver/com.android.cellbroadcastreceiver.CellBroadcastListActivity

Intégration à la boîte de réception SMS

Vous pouvez activer l'affichage des messages CellBroadcast dans l'application de messagerie par défaut en en remplaçant la configuration suivante à l'aide d'une superposition de ressources d'exécution.

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

Étant donné que l'octroi d'autorisations est en dehors du champ d'application du module CellBroadcast, vous devez accorder l'autorisation AppOpsManager.OP_WRITE_SMS à la fonction pour fournir une assistance de bout en bout. Pour une implémentation de référence AOSP, consultez ce SmsApplication.java patch.

Lancer l'application CellBroadcastReceiver

L'application CellBroadcastReceiver comporte les points de lancement suivants.

  • Menu de l'application Paramètres

  • Une application (y compris des applications tierces) telle qu'une application de messagerie qui renvoie vers Historique des messages CellBroadcast.

  • (Facultatif) Une icône de lancement de l'écran d'accueil Android ajoutée par l'OEM. Pour en savoir plus, consultez Ajouter une icône de lancement.

Paramètres de l'application CellBroadcastReceiver

Les captures d'écran suivantes montrent le menu des paramètres de l'application CellBroadcastReceiver.

Menu des paramètres de l&#39;application CellBroadcastReceiver

Figure 2. Menu des paramètres de l'application CellBroadcastReceiver

Historique des alertes d&#39;urgence

Figure 3. Écran de l'historique des alertes d'urgence

Ajouter des icônes de lancement

Vous pouvez activer l'accès à l'historique des messages de CellBroadcast depuis le lanceur d'applications et vos propres icônes de lancement.

  • Pour activer l'accès à l'historique des messages depuis le lanceur d'applications, remplacez à l'aide d'un RRO.

    <item type="bool" name="show_message_history_in_launcher" />
    
  • Pour remplacer l'icône par défaut d'AOSP, remplacez la configuration suivante en utilisant une RRO.

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

Activer le code secret CMAS

Pour activer le code secret CMAS, *#*#CMAS#*#* (*#*#2627#*#* sur le clavier), une application de téléphonie doit écouter le code spécial du clavier sous la forme d'un *#*#code#*#* et gérer le code à l'aide de la méthode publique. sendDialerSpecialCode

Exigences concernant les informations sur la région: chaîne 50

Le canal 50 est un canal spécial permettant aux opérateurs de diffuser des annonces (sauf pour MTN en Afrique du Sud). Pour cette chaîne, diffuser les messages n'entraînent pas l'affichage d'une boîte de dialogue ou d'une notification. Diffusez plutôt messages apparaissent dans l'état de la carte SIM du menu Paramètres ou dans la barre d'état (par (par exemple, l'affichage d'un code postal).

L'implémentation d'Android CeleBroadcastService est compatible avec les API suivantes dans le service de diffusion cellulaire pour les applications Paramètres et SysUI pour obtenir les informations de la chaîne de diffusion 50. Pour ce faire, procédez comme suit:

  • Enregistrer la diffusion android.telephony.action.AREA_INFO_UPDATED et ignorer le nom du package du récepteur config_area_info_receiver_packages via une RRO.

  • Associer à CellBroadcastService.CELL_BROADCAST_SERVICE_INTERFACE.

Comme les applications Paramètres et SysUI sont en dehors du champ d'application de la fonction CellBroadcast vous devez implémenter vos modifications dans SystemUI ou dans l'application Paramètres pour fournissent une assistance de bout en bout. Pour en savoir plus sur la mise en œuvre de référence, reportez-vous au Paramètres CellBroadcastService l'application Nest.

Personnalisation

Vous ne pouvez pas modifier directement le code source du module CellBroadcast, mais vous vous pouvez utiliser des superpositions de ressources d'exécution (RRO) en activer (ou désactiver) des paramètres (par exemple, vous pouvez personnaliser la couleur des notifications et sur les boîtes de dialogue). Pour remplacer les valeurs par défaut des paramètres utilisés dans au module CellBroadcast, remplacez le nom du package cible par com.android.cellbroadcastreceiver De plus :

S'il manque des ressources de traduction de chaîne UI à l'implémentation ou si si les traductions ne sont pas à la hauteur de vos attentes, vous pouvez les remplacer à l'aide d'une RRO ou collaborez avec l'équipe de traduction de Google des traductions de chaînes au module CellBroadcast. Si vous remplacez la traduction ressources, Google doit exposer ces chaînes dans overlayable.xml pour permettre le remplacement. Si vous avez besoin d'autres configurations pour personnaliser l'interface utilisateur, contactez le groupe d'assistance CellBroadcast.

Transférer les données

Android 11 inclut une ancienne application CellBroadcast, qui est un mécanisme permettant de conserver et de migrer les données des applications (y compris les paramètres utilisateur et l'historique des alertes d'urgence) pour les appareils mis à niveau vers le module CellBroadcast. Les implémentations Android qui utilisent le module CellBroadcast doivent inclure le l'ancienne application CellBroadcast dans leur build pour la migration de données. Si votre utilisez une solution CellBroadcast personnalisée, vous devez définir l'APK de CellBroadcastContentProvider afin de conserver les données (vous pouvez supprimer en toute sécurité le APK de diffusion cellulaire dans une version ultérieure).

Sur les appareils mis à niveau pour utiliser le module CellBroadcast, celui-ci récupère les données depuis l'application AOSP LegacyCellBroadcastApp ou l'APK de CellBroadcastContentProvider défini par l'OEM via le fichier cellbroadcast-legacy.

Utiliser un APK CellBroadcastContentProvider défini par l'OEM

Lorsque vous définissez un APK CellBroadcastContentProvider, celui-ci doit respecter ces caractéristiques techniques.

  • L'APK est un APK sans interface graphique qui n'affiche que le contenu de sa base de données. et SharedPreferences via un ContentProvider avec l'autorité cellbroadcast-legacy et n'est pas accessible à des applications tierces.

  • L'APK est développé et détenu par l'OEM, qui peut alors continuer à pour héberger leur schéma d'API caché.

Pour migrer SharedPreferences vers le module CellBroadcast, L'APK de CellBroadcastContentProvider doit prendre en charge ContentProvider.call). avec les paramètres suivants:

  • Autorité:@SystemAPI CellBroadcast.LEGACY_CONTENT_URI
  • Méthode:@SystemAPI CellBroadcast.CALL_METHOD_GET_PREFERENCE
  • Argument: @SystemAPI CellBroadcast.Preference

    Voici une liste des clés de préférences partagées prises en charge pour la fonction CellBroadcast de ce module. Les données sont issues de SharedPreferences pour le ContentProvider.call .

Pour migrer l'historique des messages vers le module CellBroadcast, le L'APK de CellBroadcastContentProvider doit prendre en charge ContentProvider.query avec les paramètres suivants:

  • Autorité:@SystemAPI CellBroadcast.LEGACY_CONTENT_URI. Colonnes de requête lister les propriétés de message prises en charge pour le module CellBroadcast. Reçoit les données (de votre base de données) pour la méthode ContentProvider.query.

Pour obtenir une implémentation de référence pour CellBroadcastContentProvider,, consultez LegacyCellBroadcastContentProvider

Tests

La suite de tests de compatibilité Android (CTS) vérifie le bon fonctionnement des API système dépendantes de l'application. Vous pouvez également exécuter le module CellBroadcast unit tests/testappsp

Si l'OEM a activé le code secret CMAS d'un appareil, cette appareil peut prendre en charge le mode débogage avec les fonctionnalités suivantes.

  • Les alertes de test sont regroupées sous Autres alertes, et elles peuvent être activées ou désactivées.

  • L'historique inclut tous les messages reçus, mais non affichés, tels que des messages en double ou dans une autre langue.

  • Les messages affichent tous les paramètres disponibles, y compris le numéro de série et le message et sa date d'expiration.

Pour activer le mode débogage, composez le *#*#CMAS#*#* sur le clavier.

Contact

Pour en savoir plus ou pour toute question concernant le module CellBroadcast, contactez le Groupe d'assistance CellBroadcast.