Zelfstudie: Pushmeldingen verzenden naar Android-apparaten met Firebase SDK versie 1.0.0-preview1

In deze zelfstudie wordt gedemonstreerd hoe u met Azure Notification Hubs en de bijgewerkte versie van de Firebase Cloud Messaging (FCM) SDK (versie 1.0.0-preview1) pushmeldingen verzendt naar een Android-toepassing. In deze zelfstudie gaat u een lege Android-app maken die pushmeldingen ontvangt via Firebase Cloud Messaging (FCM).

U kunt de voltooide code voor deze zelfstudie downloaden op GitHub.

Deze zelfstudie bestaat uit de volgende stappen:

  • Een Android Studio-project maken.
  • Een Firebase-project maken dat Firebase Cloud Messaging ondersteunt.
  • Een Notification Hub maken.
  • Verbind uw app met de hub.
  • De app testen.

Vereisten

U hebt een actief Azure-account nodig om deze zelfstudie te voltooien. Als u geen account hebt, kunt u binnen een paar minuten een account voor de gratis proefversie maken. Zie Gratis proefversie van Azure voor meer informatie.

Notitie

Google/Firebase-API's worden niet ondersteund in Azure China-regio's.

U hebt ook de volgende items nodig:

  • We bevelen hiervoor de nieuwste versie van Android Studio aan.
  • Minimale ondersteuning is API-niveau 19.

Een Android Studio-project maken

De eerste stap is een project in Android Studio te maken:

  1. Start Android Studio.

  2. Selecteer Bestand, selecteert vervolgens Nieuw en vervolgens Nieuw project.

  3. Selecteer Empty Activity op de pagina Choose your project en selecteer Next.

  4. Voer het volgende uit op de pagina Uw project configureren:

    1. Voer bij Name een naam in voor de toepassing.
    2. Geef een locatie om voor het opslaan van de projectbestanden.
    3. Selecteer Voltooien.

    Project configureren

Een Firebase-project maken dat FCM ondersteunt

  1. Meld u aan bij de Firebase-console. Maak een nieuw Firebase-project als u er nog geen hebt.

  2. Nadat u uw project hebt gemaakt, selecteert u Firebase toevoegen aan uw Android-app.

    Firebase toevoegen

  3. Voer het volgende uit op de pagina Firebase toevoegen aan uw Android-app:

    1. Voor Android-pakketnaam kopieert u de waarde van de applicationId in het bestand build.gradle van uw toepassing. In dit voorbeeld is het com.fabrikam.fcmtutorial1app.

      Pakketnaam opgeven

    2. Selecteer App registreren.

  4. Selecteer google-services.json downloaden, sla het bestand op in de map app van uw project, en selecteer Volgende.

    Google-service downloaden

  5. Selecteer in de Firebase-console het tandwiel van uw project. Selecteer vervolgens Projectinstellingen.

    Projectinstellingen

  6. Als u het bestand google-services.json niet hebt gedownload in de map app van uw Android Studio-project, kunt u dat op deze pagina doen.

  7. Ga naar het tabblad Cloud Messaging.

  8. Kopieer de Serversleutel en sla deze op voor later gebruik. U gebruikt deze waarde om uw hub te configureren.

  9. Als u geen serversleutel ziet op het tabblad Firebase Cloud Messaging , voert u de volgende stappen uit:

    1. Selecteer het menu met drie puntjes van de kop Cloud Messaging-API (verouderd) Uitgeschakeld .
    2. Volg de koppeling naar De API beheren in Google Cloud Console.
    3. Selecteer in de Google Cloud Console de knop om de Google Cloud Messaging-API in te schakelen.
    4. Wacht enkele minuten.
    5. Ga terug naar het tabblad Cloud Messaging van de Firebase-console en vernieuw de pagina.
    6. Zie dat de Cloud Messaging-API-header is gewijzigd in Cloud Messaging-API (verouderd) ingeschakeld en nu een serversleutel weergeeft.

    Schermopname van cloud messaging-API inschakelen (verouderd).

Een Notification Hub configureren

  1. Meld u aan bij het Azure-portaal.

  2. Selecteer Alle services in het menu aan de linkerkant en selecteer Notification Hubs in de sectie Mobiel. Selecteer het sterpictogram naast de servicenaam om de service toe te voegen aan de sectie FAVORIETEN in het menu aan de linkerkant. Nadat u Notification Hubs hebt toegevoegd aan FAVORIETEN, selecteert u dit in het linkermenu.

  3. Op de Notification Hubs-pagina selecteert u Toevoegen op de werkbalk.

    Hub toevoegen

  4. Voer op de pagina Notification Hubs het volgende uit:

    1. Voer een naam in Notification Hub in.

    2. Voer een naam in Een nieuwe naamruimte maken in. Een naamruimte bevat een of meer hubs.

    3. Selecteer een waarde uit de vervolgkeuzelijst Locatie. Deze waarde specificeert de locatie waar u de hub wilt maken.

    4. Selecteer een bestaande resourcegroep bij Resourcegroep of maak een nieuwe.

    5. Selecteer Maken.

      Hub maken

  5. Selecteer Meldingen (het belpictogram) en selecteer vervolgens Ga naar resource. U kunt ook de lijst op de pagina Notification Hubs vernieuwen en uw hub selecteren.

    Hub selecteren

  6. Selecteer Toegangsbeleid in de lijst. Merk op dat er twee verbindingsreeksen beschikbaar zijn. Later moet u er pushmeldingen mee afhandelen.

    Toegangsbeleid

    Belangrijk

    Gebruik niet het beleid DefaultFullSharedAccessSignature in uw toepassing. Dit beleid dient alleen in de back-end van de app te worden gebruikt.

Firebase Cloud Messaging-instellingen voor de hub configureren

  1. Selecteer in het linkerdeelvenster onder Instellingen de optie Google (GCM/FCM).

  2. Voer de serversleutel in voor het FCM-project dat u eerder hebt opgeslagen.

  3. Selecteer Opslaan op de werkbalk.

    Serversleutel

  4. De Azure-portal geeft een bericht weer dat de hub is bijgewerkt. De knop Opslaan kan niet worden gekozen.

Uw Notification Hub is nu geconfigureerd om te werken met Firebase Cloud Messaging. U hebt ook de verbindingsreeksen die nodig zijn om meldingen naar een apparaat te verzenden en een app te registreren voor het ontvangen van meldingen.

Uw app verbinden met de Notification Hub

Google Play-services aan het project toevoegen

  1. Selecteer in Android Studio in het menu de optie Hulpprogramma’s, en selecteer vervolgens SDK Manager.

  2. Selecteer de doelversie van de Android SDK die wordt gebruikt in het project. Selecteer vervolgens Pakketdetails weergeven.

    SDK Manager

  3. Selecteer Google API’s als dit nog niet is geïnstalleerd.

    API's

  4. Ga naar het tabblad SDK-hulpprogramma's . Als u Google Play Services nog niet hebt geïnstalleerd, selecteert u Google Play Services , zoals wordt weergegeven in de volgende afbeelding. Selecteer vervolgens Toepassen om de installatie te starten. Noteer het SDK-pad om het in een later stadium te kunnen gebruiken.

    Play Services

  5. Klik op OK zodra het dialoogvenster Wijziging bevestigen wordt weergegeven. De vereiste onderdelen worden geïnstalleerd met behulp van het installatieprogramma voor onderdelen. Selecteer Voltooien zodra de onderdelen zijn geïnstalleerd.

  6. Selecteer OK om het dialoogvenster Instellingen voor nieuwe projecten te sluiten.

Azure Notification Hubs-bibliotheken toevoegen

  1. Voeg in het bestand build.gradle voor de app de volgende regels toe in de sectie met afhankelijkheden:

    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. Voeg de volgende opslagplaats toe na de sectie met afhankelijkheden:

    repositories {
       maven {
          url "https://dl.bintray.com/microsoftazuremobile/SDK"
       }
    }
    

Ondersteuning voor Google Firebase toevoegen

  1. Voeg de volgende invoegtoepassing toe aan het einde van het bestand als deze er nog niet staat.

    apply plugin: 'com.google.gms.google-services'
    
  2. Selecteer Nu synchroniseren op de werkbalk.

Code toevoegen

  1. Maak een NotificationHubListener-object, dat het onderscheppen van de berichten uit Azure Notification Hubs verwerkt.

    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. In de methode OnCreate van de klasse MainActivity voegt u de volgende code toe om het Notification Hubs-initialisatieproces te starten wanneer de activiteit wordt gemaakt:

    @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. Klik in Android Studio in de menubalk op Bouwen en selecteer vervolgens Project opnieuw opbouwen om ervoor te zorgen dat uw code geen fouten bevat. Als u een foutbericht ontvangt over het pictogram ic_launcher, verwijdert u de volgende instructie uit het bestand AndroidManifest.xml:

    android:icon="@mipmap/ic_launcher"
    
  4. Zorg ervoor dat u een virtueel apparaat hebt voor het uitvoeren van de app. Als u er geen hebt, voegt u er als volgt een toe:

    1. Apparaatbeheer

    2. Virtuele apparaten

    3. Voer de app uit op uw geselecteerde apparaat en verifieer dat deze correct is geregistreerd in de hub.

      Apparaatregistratie

      Notitie

      De registratie kan mislukken bij de eerste keer starten totdat de methode onTokenRefresh() van de exemplaar-id-service wordt aangeroepen. Een vernieuwing moet een succesvolle registratie met de Notification Hub tot stand brengen.

Een testmelding verzenden

U kunt als volgt pushmeldingen naar uw Notification Hub verzenden vanuit de Azure Portal:

  1. Ga in de Azure Portal naar de pagina ‘Notification Hub’ voor uw hub en selecteer Verzenden testen in het gedeelte Probleemoplossing.

  2. Selecteer voor PlatformsAndroid.

  3. Selecteer Verzenden. U ziet nog geen melding op het Android-apparaat omdat u daarop de mobiele app niet hebt uitgevoerd. Nadat u de mobiele app hebt uitgevoerd, selecteert u opnieuw Verzenden om de melding weer te geven.

  4. Bekijk het resultaat van de bewerking in de lijst onderaan de portalpagina.

    Testmelding verzenden

  5. U ziet de melding op uw apparaat.

Pushmeldingen worden gewoonlijk in een back-endservice zoals Mobile Apps of ASP.NET verzonden met een compatibele bibliotheek. U kunt de REST API ook rechtstreeks gebruiken om meldingsberichten te verzenden als er geen bibliotheek beschikbaar is voor uw back-end.

De mobiele app uitvoeren in een emulator

Voordat u pushmeldingen binnen een emulator test, moet u ervoor zorgen dat de installatiekopie van de emulator het Google API-niveau ondersteunt dat u voor uw app hebt gekozen. Als uw installatiekopie geen ondersteuning biedt voor native Google-API’s, kan de uitzondering SERVICE_NIET_BESCHIKBAAR worden weergegeven.

Bovendien moet uw Google-account zijn toegevoegd aan de actieve emulator onder Instellingen>Accounts. Anders kunnen pogingen om opnieuw te registreren bij FCM leiden tot de uitzondering VERIFICATIE_MISLUKT.

Volgende stappen

In deze zelfstudie hebt u Firebase Cloud Messaging gebruikt om meldingen te verzenden naar alle Android-apparaten die zijn geregistreerd bij de service. Ga verder met de volgende zelfstudie als u wilt weten hoe u pushmeldingen kunt verzenden naar specifieke apparaten:

Het volgende is een lijst met andere zelfstudies voor het verzenden van meldingen: