Freigeben über


Lernprogramm: Senden von Pushbenachrichtigungen an Android-Geräte mit Firebase SDK Version 1.0.0-preview1

In diesem Lernprogramm wird gezeigt, wie Sie Azure Notification Hubs und die aktualisierte Version des Firebase Cloud Messaging (FCM)SDK (Version 1.0.0-preview1) verwenden, um Pushbenachrichtigungen an eine Android-Anwendung zu senden. In diesem Lernprogramm erstellen Sie eine leere Android-App, die Pushbenachrichtigungen mit Firebase Cloud Messaging (FCM) empfängt.

Von Bedeutung

Ab Juni 2024 werden FCM-Legacy-APIs nicht mehr unterstützt und eingestellt. Um Unterbrechungen in Ihrem Pushbenachrichtigungsdienst zu vermeiden, müssen Sie so schnell wie möglich zum FCM v1-Protokoll migrieren.

Sie können den vollständigen Code für dieses Lernprogramm von GitHub herunterladen.

Dieses Tutorial enthält die folgenden Schritte:

  • Erstellen eines Android Studio-Projekts.
  • Erstellen eines Firebase-Projekts, das Firebase Cloud Messaging unterstützt.
  • Erstellen eines Notification Hubs
  • Verbinden Sie Ihre App mit dem Hub.
  • Testen der App.

Voraussetzungen

Sie benötigen ein aktives Azure-Konto, um dieses Lernprogramm abzuschließen. Wenn Sie über kein Konto verfügen, können Sie in nur wenigen Minuten ein kostenloses Testkonto erstellen. Ausführliche Informationen finden Sie in der kostenlosen Azure-Testversion.

Hinweis

Google/Firebase-APIs werden in Azure China-Regionen nicht unterstützt.

Sie benötigen außerdem folgende Elemente:

  • Die neueste Version von Android Studio wird empfohlen.
  • Mindestunterstützung ist API-Ebene 19.

Erstellen eines Android Studio-Projekts

Der erste Schritt besteht darin, ein Projekt in Android Studio zu erstellen:

  1. Starten Sie Android Studio.

  2. Wählen Sie "Datei" und dann " Neu" und dann " Neues Projekt" aus.

  3. Wählen Sie auf der Seite Choose your project (Projekt auswählen) die Option Empty Activity (Leere Aktivität) und dann Next (Weiter) aus.

  4. Gehen Sie auf der Seite "Projekt konfigurieren " wie folgt vor:

    • Geben Sie einen Namen für die Anwendung ein.
    • Geben Sie einen Speicherort an, in dem die Projektdateien gespeichert werden.
    • Klicken Sie auf Fertig stellen.

    Projekt konfigurieren

Erstellen eines Firebase-Projekts, das FCM unterstützt

  1. Melden Sie sich bei der Firebase-Konsole an. Erstellen Sie ein neues Firebase-Projekt, falls Sie noch keins besitzen.

  2. Nachdem Sie Ihr Projekt erstellt haben, wählen Sie "Firebase zu Ihrer Android-App hinzufügen" aus.

    Hinzufügen von Firebase

  3. Auf der Seite "Firebase zu Ihrer Android-App hinzufügen", gehen Sie wie folgt vor:

    • Kopieren Sie für den Namen des Android-Pakets den Wert der applicationId in der Datei "build.gradle " Ihrer Anwendung. In diesem Beispiel ist es com.fabrikam.fcmtutorial1app.

      Paketname angeben

    • Wählen Sie "App registrieren" aus.

  4. Wählen Sie Download google-services.json (google-services.json herunterladen) aus, speichern Sie die Datei im Ordner app des Projekts, und klicken Sie dann auf Next (Weiter).

    Google-Dienst herunterladen

  5. Klicken Sie in der Firebase-Konsole auf das Zahnrad für Ihr Projekt. Klicken Sie dann auf Projekteinstellungen.

    Projekteinstellungen

  6. Wenn Sie die google-services.json Datei nicht in den App-Ordner Ihres Android Studio-Projekts heruntergeladen haben, können Sie dies auf dieser Seite tun.

  7. Wechseln Sie zur Registerkarte "Cloud Messaging ".

  8. Kopieren und speichern Sie den Serverschlüssel für eine spätere Verwendung. Verwenden Sie diesen Wert zum Konfigurieren Ihres Hubs.

  9. Wenn auf der Registerkarte "Firebase Cloud Messaging" kein Serverschlüssel angezeigt wird, führen Sie die folgenden Schritte aus:

    1. Wählen Sie das Menü mit drei Punkten der Überschrift "Cloud Messaging-API (Legacy) Deaktiviert" aus.
    2. Folgen Sie dem Link zum Verwalten der API in der Google Cloud Console.
    3. Wählen Sie in der Google Cloud Console die Schaltfläche aus, um die Google Cloud Messaging-API zu aktivieren.
    4. Warten Sie ein paar Minuten.
    5. Wechseln Sie zurück zur Registerkarte " Cloud Messaging " der Firebase-Konsole, und aktualisieren Sie die Seite.
    6. Sehen Sie sich an, dass sich der Cloud Messaging-API-Header in "Cloud Messaging API( Legacy) Aktiviert" geändert hat und nun einen Serverschlüssel anzeigt.

    Screenshot des Portals mit aktivierter Cloud Messaging-API (Legacy).

Konfigurieren eines Benachrichtigungshubs

  1. Melden Sie sich beim Azure-Portal an.

  2. Wählen Sie im Menü auf der linken Seite die Option Alle Dienste und dann im Abschnitt Mobil die Option Notification Hubs aus. Wählen Sie das Sternsymbol neben dem Dienstnamen aus, um den Dienst im linken Menü zum Abschnitt FAVORITEN hinzuzufügen. Nachdem Sie Benachrichtigungshubs zu FAVORITEN hinzugefügt haben, wählen Sie sie im linken Menü aus.

  3. Wählen Sie auf der Seite Notification Hubs in der Symbolleiste die Option Hinzufügen.

    Hub hinzufügen

  4. Gehen Sie auf der Seite "Notification Hubs " wie folgt vor:

    1. Geben Sie ins Feld Notification Hub einen Namen ein.

    2. Geben Sie ins Feld Neuen Namespace erstellen einen Namen ein. Ein Namespace enthält einen oder mehrere Hubs.

    3. Wählen Sie in der Dropdownliste Standort einen Wert aus. Dieser Wert gibt den Standort an, an dem der Hub erstellt werden soll.

    4. Wählen Sie eine vorhandene Ressourcengruppe in der Ressourcengruppe aus, oder erstellen Sie eine neue.

    5. Wählen Sie "Erstellen" aus.

      Hub erstellen

  5. Wählen Sie Benachrichtigungen (Glockensymbol) und dann Zu Ressource wechseln aus. Sie können auch die Liste auf der Seite Notification Hubs aktualisieren und Ihren Hub auswählen.

    Hub auswählen

  6. Wählen Sie in der Liste die Option Zugriffsrichtlinien aus. Beachten Sie, dass zwei Verbindungszeichenfolgen verfügbar sind. Sie werden später für die Behandlung von Pushbenachrichtigungen benötigt.

    Zugriffsrichtlinien

    Von Bedeutung

    Verwenden Sie die DefaultFullSharedAccessSignature-Richtlinie nicht in Ihrer Anwendung. Diese Richtlinie soll nur im App-Back-End verwendet werden.

Konfigurieren von Firebase Cloud Messaging-Einstellungen für den Hub

  1. Wählen Sie im linken Bereich unter Einstellungen die Option Google (GCM/FCM) aus.

  2. Geben Sie den Serverschlüssel für das FCM-Projekt ein, den Sie zuvor gespeichert haben.

  3. Wählen Sie in der Symbolleiste Speichern aus.

    Serverschlüssel

  4. Das Azure-Portal zeigt eine Meldung an, dass der Hub erfolgreich aktualisiert wurde. Die Schaltfläche Save (Speichern) ist deaktiviert.

Ihr Benachrichtigungshub ist jetzt für die Arbeit mit Firebase Cloud Messaging konfiguriert. Sie verfügen außerdem über die Verbindungszeichenfolgen, die erforderlich sind, um Benachrichtigungen an ein Gerät zu senden und eine App für den Empfang von Benachrichtigungen zu registrieren.

Verbinden Ihrer App mit dem Notification Hub

Hinzufügen von Google Play Services zum Projekt

  1. Wählen Sie in Android Studio im Menü die Option Tools und dann SDK Manager aus.

  2. Wählen Sie die Zielversion des Android SDK aus, das in Ihrem Projekt verwendet wird. Wählen Sie dann Paketdetails anzeigen aus.

    SDK-Manager

  3. Wählen Sie die Option Google-APIs, falls diese Installation noch nicht durchgeführt wurde.

    Apis

  4. Wechseln Sie auf die Registerkarte SDK Tools (SDK-Tools). Wählen Sie wie in der folgenden Abbildung dargestellt die Option Google Play Services, falls Google Play Services noch nicht installiert ist. Wählen Sie dann Anwenden aus, um die Installation auszuführen. Notieren Sie den SDK-Pfad, den Sie in einem späteren Schritt angeben müssen.

    Wiedergeben von Diensten

  5. Wählen Sie OK, wenn das Dialogfeld Änderung bestätigen angezeigt wird. Das Komponenteninstallationsprogramm installiert die angeforderten Komponenten. Wählen Sie Fertig stellen, wenn die Installation der Komponenten abgeschlossen ist.

  6. Wählen Sie OK, um das Dialogfeld Settings for New Projects (Einstellungen für neue Projekte) zu schließen.

Hinzufügen von Azure Notification Hubs-Bibliotheken

  1. Fügen Sie in der Datei build.gradle für die App die folgenden Zeilen im Abschnitt "Abhängigkeiten" hinzu:

    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'
    
  2. Fügen Sie das folgende Repository nach dem Abschnitt "Abhängigkeiten" hinzu:

    dependencyResolutionManagement {
     repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
     repositories {
         google()
         mavenCentral()
         maven { url 'https://example.io' }
     }
    }
    

Hinzufügen von Unterstützung für Google Firebase

  1. Fügen Sie am Ende der Datei das folgende Plug-In hinzu, sofern es noch nicht vorhanden ist.

    apply plugin: 'com.google.gms.google-services'
    
  2. Wählen Sie auf der Symbolleiste Sync Now (Jetzt synchronisieren) aus.

Code hinzufügen

  1. Erstellen Sie ein NotificationHubListener-Objekt , das das Abfangen der Nachrichten von Azure Notification Hubs verarbeitet.

    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());
              }
          }
       }
    }
    
  2. Fügen Sie in der OnCreate Methode der MainActivity Klasse den folgenden Code hinzu, um den Initialisierungsprozess von Notification Hubs zu starten, wenn die Aktivität erstellt wird:

    @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");
    
    }
    
  3. Wählen Sie in Android Studio auf der Menüleiste " Erstellen" und dann " Projekt neu erstellen " aus, um sicherzustellen, dass in Ihrem Code keine Fehler auftreten. Wenn Sie eine Fehlermeldung über das Symbol ic_launcher erhalten, entfernen Sie die folgende Anweisung aus der datei AndroidManifest.xml:

    android:icon="@mipmap/ic_launcher"
    
  4. Stellen Sie sicher, dass Sie über ein virtuelles Gerät zum Ausführen der App verfügen. Wenn Sie keines haben, fügen Sie wie folgt eines hinzu:

    1. Geräte-Manager

    2. Virtuelle Geräte

    3. Führen Sie die App auf Ihrem ausgewählten Gerät aus, und stellen Sie sicher, dass sie erfolgreich beim Hub registriert wird.

      Geräteregistrierung

      Hinweis

      Die Registrierung kann während des ersten Starts fehlschlagen, bis die onTokenRefresh() Methode des Instanz-ID-Diensts aufgerufen wird. Eine Aktualisierung sollte eine erfolgreiche Registrierung beim Benachrichtigungshub initiieren.

Senden einer Testbenachrichtigung

Sie können Pushbenachrichtigungen über das Azure-Portal wie folgt an Ihren Benachrichtigungshub senden:

  1. Wählen Sie im Azure-Portal auf der Benachrichtigungshubseite für Ihren Hub im Abschnitt "Problembehandlung" die Option "Senden testen" aus.

  2. Wählen Sie in "Plattformen" Android aus.

  3. Wählen Sie "Senden" aus. Es wird noch keine Benachrichtigung auf dem Android-Gerät angezeigt, da Sie die mobile App nicht darauf ausgeführt haben. Wählen Sie nach dem Ausführen der mobilen App erneut die Schaltfläche Senden aus, um die Benachrichtigung anzuzeigen.

  4. Sehen Sie sich das Ergebnis des Vorgangs in der Liste am unteren Rand der Portalseite an.

    Testbenachrichtigung senden

  5. Die Benachrichtigung wird auf Ihrem Gerät angezeigt.

Pushbenachrichtigungen werden normalerweise in einem Back-End-Dienst wie mobile Apps oder ASP.NET mithilfe einer kompatiblen Bibliothek gesendet. Falls für Ihr Back-End keine Bibliothek verfügbar ist, können Sie Benachrichtigungen auch direkt über die REST-API senden.

Ausführen der mobilen App im Emulator

Vor dem Testen von Pushbenachrichtigungen in einem Emulator müssen Sie sicherstellen, dass das Emulatorimage die Google-API-Ebene unterstützt, die Sie für die App ausgewählt haben. Wenn Ihr Bild native Google-APIs nicht unterstützt, erhalten Sie möglicherweise eine SERVICE_NOT_AVAILABLE Ausnahme.

Stellen Sie zusätzlich sicher, dass Ihr Google-Konto dem ausgeführten Emulator unter Einstellungen>Konten hinzugefügt wurde. Andernfalls können Ihre Versuche, sich bei FCM zu registrieren, zu einer AUTHENTICATION_FAILED Ausnahme führen.

Nächste Schritte

In diesem Tutorial haben Sie mit Firebase Cloud Messaging Benachrichtigungen an alle Android-Geräte gesendet, die bei dem Dienst registriert wurden. Um zu erfahren, wie Sie Pushbenachrichtigungen an bestimmte Geräte senden, fahren Sie mit dem folgenden Tutorial fort:

Im Folgenden finden Sie eine Liste einiger anderer Lernprogramme zum Senden von Benachrichtigungen: