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 de protection des données.
Flux des messages CellBroadcast
La figure suivante illustre le flux de messages CellBroadcast.
Figure 1 : Flux des messages CellBroadcastReceiver
La couche d'interface radio (RIL) informe
InBoundSMSHandler
de l'existence d'une connexion CDMA/GSM CellBroadcast SMS.Le framework transmet le SMS CellBroadcast au module CBS pour analyser et traiter le message entrant.
Une fois le message traité, CellBroadcastService transmet l'intent à l'application CellBroadcastReceiver par défaut du système.
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
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.
Figure 2. Menu des paramètres de l'application CellBroadcastReceiver
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écepteurconfig_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 :
Pour obtenir la liste des configurations superposées, consultez
overlayable.xml
Pour obtenir un exemple d'implémentation,
RROSampleTestApp
dans AOSP.
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 autoriser
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 unContentProvider
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, le
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 leContentProvider.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éthodeContentProvider.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, 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.