Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Ce tutoriel montre comment utiliser Azure Notification Hubs et la version mise à jour du SDK Firebase Cloud Messaging (FCM) (version 1.0.0-preview1) pour envoyer des notifications Push à une application Android. Dans ce tutoriel, vous allez créer une application Android vide qui reçoit des notifications Push à l’aide de Firebase Cloud Messaging (FCM).
Important
À partir de juin 2024, les API héritées FCM ne seront plus prises en charge et seront supprimées. Pour éviter toute interruption dans votre service de notification Push, vous devez migrer vers le protocole FCM v1 dès que possible.
Vous pouvez télécharger le code terminé pour ce didacticiel à partir de GitHub.
Ce didacticiel couvre les étapes suivantes :
- Créer un projet Android Studio.
- Créer un projet qui prend en charge Firebase Cloud Messaging.
- Création d’un hub de notification
- Connecter votre application au hub.
- Testez l’application.
Conditions préalables
Pour suivre ce didacticiel, vous avez besoin d'un compte Azure actif. Si vous ne possédez pas de compte, vous pouvez créer un compte d’évaluation gratuit en quelques minutes. Pour plus d’informations, consultez La version d’évaluation gratuite d’Azure.
Remarque
Les API Google/Firebase ne sont pas prises en charge dans les régions Azure Chine.
Vous devez également disposer des éléments suivants :
- La dernière version d’Android Studio est recommandée.
- La prise en charge minimale est le niveau d’API 19.
Créer un projet Android Studio
La première étape consiste à créer un projet dans Android Studio :
Lancez Android Studio.
Sélectionnez Fichier, puis Nouveau, puis Nouveau projet.
Dans la page Choose your project (Choisir votre projet), sélectionnez Empty Activity (Activité vide), puis sélectionnez Next (Suivant).
Dans la page Configurer votre projet , procédez comme suit :
- Entrez un nom pour l’application.
- Spécifiez un emplacement où enregistrer les fichiers du projet.
- Sélectionnez Terminer.
Créer un projet qui prend en charge FCM
Connectez-vous à la console Firebase. Créer un nouveau projet Firebase si vous n’en avez pas encore.
Une fois le projet créé, sélectionnez Add Firebase to your Android app (Ajouter Firebase à votre application Android).
Dans la page Ajouter Firebase à votre application Android , procédez comme suit :
Pour le nom du package Android, copiez la valeur de l’id d’application dans le fichier build.gradle de votre application. Dans cet exemple, il est
com.fabrikam.fcmtutorial1app
.Sélectionnez Inscrire une application.
Sélectionnez Télécharger google-services.json, enregistrez le fichier dans le dossier app de votre projet, puis sélectionnez Suivant.
Dans la console Firebase, sélectionnez l'icône de roue dentée associée à votre projet. Ensuite, sélectionnez Project Settings (Paramètres du projet).
Si vous n’avez pas téléchargé le fichier google-services.json dans le dossier d’application de votre projet Android Studio, vous pouvez le faire sur cette page.
Basculez vers l’onglet Cloud Messaging .
Copiez et enregistrez la clé du serveur pour une utilisation ultérieure. Vous utilisez cette valeur pour configurer votre hub.
Si vous ne voyez pas de clé de serveur sous l’onglet Firebase Cloud Messaging , procédez comme suit :
- Sélectionnez le menu à trois points de l’en-tête API Cloud Messaging (hérité) Désactivé.
- Suivez le lien vers Gérer l’API dans Google Cloud Console.
- Dans la console Google Cloud, sélectionnez le bouton pour activer l’API Google Cloud Messaging.
- Patientez quelques minutes.
- Revenez à votre onglet Cloud Messaging du projet de console Firebase et actualisez la page.
- Vérifiez que l’en-tête de l’API Cloud Messaging a été remplacé par l’API Cloud Messaging (héritée) Activée et affiche maintenant une clé de serveur.
Configurer un hub de notification
Connectez-vous au portail Azure.
Sélectionnez Tous les services dans le menu de gauche, puis sélectionnez Notification Hubs dans la section Mobile. Sélectionnez l’icône d’étoile en regard du nom du service pour l’ajouter à la section FAVORIS dans le menu de gauche. Après avoir ajouté Notification Hubs à FAVORIS, sélectionnez-le dans le menu à gauche.
Dans la page Notification Hubs, sélectionnez Ajouter dans la barre d’outils.
Dans la page Notification Hubs , procédez comme suit :
Entrez un nom dans Notification Hub.
Entrez un nom dans Créer un espace de noms. Un espace de noms contient un ou plusieurs hubs.
Sélectionnez une valeur dans la zone déroulante Emplacement. Cette valeur spécifie l’emplacement où vous voulez créer le hub.
Sélectionnez un groupe de ressources existant dans le groupe de ressources ou créez-en un.
Cliquez sur Créer.
Sélectionnez Notifications (icône de cloche), puis Accéder à la ressource. Vous pouvez également actualiser la liste dans la page Notification Hubs et sélectionner votre hub.
Sélectionnez Stratégies d’accès dans la liste. Notez que deux chaînes de connexion sont disponibles. Vous en aurez besoin pour gérer les notifications Push.
Important
N’utilisez pas la stratégie DefaultFullSharedAccessSignature dans votre application. Cette stratégie doit uniquement être utilisée dans le back-end de l’application.
Configurer les paramètres de Firebase Cloud Messaging pour le hub
Dans le volet gauche, sous Settings (Paramètres), sélectionnez Google (GCM/FCM) .
Entrez la clé serveur pour le projet FCM que vous avez enregistré précédemment.
Sur la barre d’outils sélectionnez Enregistrer.
Le portail Azure affiche un message indiquant que le hub a été correctement mis à jour. Le bouton Enregistrer est désactivé.
Votre hub de notification est maintenant configuré pour fonctionner avec Firebase Cloud Messaging. Vous disposez également des chaînes de connexion nécessaires pour envoyer des notifications à un appareil et inscrire une application pour recevoir des notifications.
Connexion de votre application au hub de notification
Ajout de services Google Play au projet
Dans Android Studio, sélectionnez Outils dans le menu, puis SDK Manager.
Sélectionnez la version cible du Kit de développement logiciel (SDK) Android qui est utilisé dans votre projet. Puis sélectionnez Afficher les détails du package.
Sélectionnez API Google, si elles ne sont pas déjà installées.
Basculez vers l’onglet SDK Tools. Si vous n’avez pas déjà installé un service Google Play, sélectionnez Google Play Services comme indiqué dans l’image suivante. Sélectionnez ensuite Appliquer pour procéder à l’installation. Notez le chemin du Kit de développement logiciel (SDK). Vous l’utiliserez à une étape suivante.
Si la boîte de dialogue de confirmation de la modification s’affiche, sélectionnez OK. Le programme d’installation du composant installe les composants demandés. Sélectionnez Terminer une fois que les composants sont installés.
Sélectionnez OK pour fermer la boîte de dialogue Paramètres pour les nouveaux projets.
Ajoutez des bibliothèques Azure Notification Hubs
Dans le fichier build.gradle de l’application, ajoutez les lignes suivantes dans la section dépendances :
implementation 'com.microsoft.azure:notification-hubs-android-sdk-fcm:1.1.4' implementation 'androidx.appcompat:appcompat:1.4.1' implementation 'com.android.volley:volley:1.2.1'
Ajoutez le référentiel suivant après la section dépendances :
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() maven { url 'https://example.io' } } }
Ajouter la prise en charge de Google Firebase
Ajoutez le plug-in suivant à la fin du fichier s’il n’y figure pas encore.
apply plugin: 'com.google.gms.google-services'
Sélectionnez Synchroniser maintenant dans la barre d’outils.
Ajout de code
Créez un objet NotificationHubListener , qui gère l’interception des messages à partir d’Azure Notification Hubs.
public class CustomNotificationListener implements NotificationListener { @override public void onNotificationReceived(Context context, RemoteMessage message) { /* The following notification properties are available. */ Notification notification = message.getNotification(); String title = notification.getTitle(); String body = notification.getBody(); Map<String, String> data = message.getData(); if (message != null) { Log.d(TAG, "Message Notification Title: " + title); Log.d(TAG, "Message Notification Body: " + message); } if (data != null) { for (Map.Entry<String, String> entry : data.entrySet()) { Log.d(TAG, "key, " + entry.getKey() + " value " + entry.getValue()); } } } }
Dans la
OnCreate
méthode de laMainActivity
classe, ajoutez le code suivant pour démarrer le processus d’initialisation notification Hubs lors de la création de l’activité :@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); NotificationHub.setListener(new CustomNotificationListener()); NotificationHub.start(this.getApplication(), "Hub Name", "Connection-String"); }
Dans Android Studio, dans la barre de menus, sélectionnez Générer, puis regénérer le projet pour vous assurer qu’il n’y a aucune erreur dans votre code. Si vous recevez une erreur concernant l’icône ic_launcher , supprimez l’instruction suivante du fichier AndroidManifest.xml :
android:icon="@mipmap/ic_launcher"
Vérifiez que vous disposez d’un appareil virtuel pour l’exécution de l’application. Si vous n’en avez pas, ajoutez-en un de la façon suivante :
Exécutez l’application sur votre appareil sélectionné et vérifiez qu’elle s’inscrit correctement auprès du hub.
Remarque
L’inscription peut échouer pendant le lancement initial, jusqu’à ce que la
onTokenRefresh()
méthode du service d’ID d’instance soit appelée. Une actualisation doit lancer une inscription réussie auprès du hub de notification.
Envoyer une notification de test
Vous pouvez envoyer des notifications Push à votre hub de notification à partir du portail Azure, comme suit :
Dans le portail Azure, dans la page du hub de notification de votre hub, sélectionnez Tester l’envoi dans la section Résolution des problèmes .
Dans Plateformes, sélectionnez Android.
Sélectionnez Envoyer. Vous ne voyez pas encore de notification sur l’appareil Android parce que vous n’avez pas exécuté l’application mobile sur celui-ci. Après avoir exécuté l’application mobile, sélectionnez de nouveau le bouton Envoyer pour voir le message de notification.
Consultez le résultat de l’opération dans la liste en bas de la page du portail.
Vous voyez le message de notification sur votre appareil.
Les notifications Push sont normalement envoyées dans un service back-end tel que Mobile Apps ou ASP.NET à l’aide d’une bibliothèque compatible. Si aucune bibliothèque n’est disponible pour votre backend, vous pouvez également utiliser l’API REST directement pour envoyer des messages de notification.
Exécuter l’application mobile sur un émulateur
Avant de tester les notifications Push dans un émulateur, vérifiez que votre image d’émulateur prend en charge le niveau d’API Google que vous avez choisi pour votre application. Si votre image ne prend pas en charge les API Google natives, vous pouvez obtenir une exception SERVICE_NOT_AVAILABLE .
Vérifiez aussi que vous avez ajouté votre compte Google à l’émulateur en cours d’exécution sous Paramètres>Comptes. Dans le cas contraire, vos tentatives d’inscription auprès de FCM peuvent entraîner une exception AUTHENTICATION_FAILED .
Étapes suivantes
Dans ce didacticiel, vous avez utilisé Firebase Cloud Messaging pour diffuser des notifications à tous les appareils Android inscrits auprès du service. Pour savoir comment envoyer des notifications Push à des appareils spécifiques, passez au didacticiel suivant :
Voici une liste d’autres didacticiels pour l’envoi de notifications :
Azure Mobile Apps : Pour obtenir un exemple d’envoi de notifications à partir d’un back-end Mobile Apps intégré à Notification Hubs, consultez Ajouter des notifications Push à votre application iOS.
ASP.NET : Utiliser Notification Hubs pour envoyer des notifications Push à des utilisateurs.
Kit de développement logiciel (SDK) Java pour Azure Notification Hubs : consultez Utilisation de Notification Hubs à partir de Java pour envoyer des notifications depuis Java. Il a été testé dans Eclipse pour le développement Android.