Självstudie: Skicka push-meddelanden till Android-enheter med Firebase SDK version 1.0.0-preview1
Den här självstudien visar hur du använder Azure Notification Hubs och den uppdaterade versionen av Firebase Cloud Messaging (FCM) SDK (version 1.0.0-preview1) för att skicka push-meddelanden till ett Android-program. I den här självstudien skapar du en tom Android-app som tar emot push-meddelanden med hjälp av Firebase Cloud Messaging (FCM).
Viktigt!
Från och med juni 2024 kommer FCM-äldre API:er inte längre att stödjas och kommer att dras tillbaka. För att undvika störningar i push-meddelandetjänsten måste du migrera till FCM v1-protokollet så snart som möjligt.
Du kan ladda ned den färdiga koden för den här självstudien från GitHub.
Den här självstudien omfattar följande steg:
- Skapa ett Android Studio-projekt.
- Skapa ett Firebase-projekt som har stöd för Firebase Cloud Messaging.
- Skapa en meddelandehubb.
- Anslut din app till hubben.
- Testa appen.
Förutsättningar
Du måste ha ett aktivt Azure-konto för att slutföra den här självstudiekursen. Om du inte har något konto kan skapa du ett kostnadsfritt utvärderingskonto på bara några minuter. Mer information finns i Kostnadsfri utvärderingsversion av Azure.
Kommentar
Google/Firebase-API:er stöds inte i Azure China-regioner.
Du behöver också följande:
- Den senaste versionen av Android Studio rekommenderas.
- Minsta stöd är API-nivå 19.
Skapa ett Android Studio-projekt
Det första steget är att skapa ett projekt i Android Studio:
Starta Android Studio.
Välj Arkiv och sedan Nytt och sedan Nytt projekt.
På sidan Välj projekt väljer du Tom aktivitet och sedan Nästa.
Gör följande på sidan Konfigurera projektet :
- Ange ett namn på programmet.
- Ange en plats där projektfilerna ska sparas.
- Välj Slutför.
Skapa ett Firebase-projekt som har stöd för FCM
Logga in på Firebase-konsolen. Skapa ett nytt Firebase-projekt om du inte redan har ett.
När du har skapat ett projekt väljer du Lägg till Firebase till din Android-app.
På sidan Lägg till Firebase i din Android-app gör du följande:
För Android-paketnamn kopierar du värdet för applicationId i programmets build.gradle-fil . I det här exemplet är
com.fabrikam.fcmtutorial1app
det .Välj Registrera app.
Välj Ladda ned google-services.json, spara filen i appmappen för projektet och välj sedan Nästa.
Välj kugghjulet för ditt projekt i Firebase-konsolen. Välj sedan Projektinställningar.
Om du inte har laddat ned google-services.json-filen till appmappen för ditt Android Studio-projekt kan du göra det på den här sidan.
Växla till fliken Molnmeddelanden .
Kopiera och spara servernyckeln för senare användning. Du använder det här värdet för att konfigurera din hubb.
Om du inte ser någon servernyckel på fliken Firebase Cloud Messaging följer du dessa steg:
- Välj menyn med tre punkter i rubriken Cloud Messaging API (Äldre) Inaktiverad .
- Följ länken till Hantera API i Google Cloud Console.
- I Google Cloud Console väljer du knappen för att aktivera API:et för Google Cloud Messaging.
- Vänta några minuter.
- Gå tillbaka till fliken Cloud Messaging för Firebase-konsolprojektet och uppdatera sidan.
- Se till att API-huvudet för Cloud Messaging har ändrats till Cloud Messaging API (Äldre) aktiverat och nu visar en servernyckel.
Konfigurera en meddelandehubb
Logga in på Azure-portalen.
Välj Alla tjänster på den vänstra menyn och välj sedan Notification Hubs i avsnittet Mobil . Välj stjärnikonen bredvid tjänstnamnet för att lägga till tjänsten i avsnittet FAVORITER på den vänstra menyn. När du har lagt till Notification Hubs i FAVORITER väljer du det på den vänstra menyn.
På sidan Notification Hubs väljer du Lägg till i verktygsfältet.
Gör följande på sidan Notification Hubs :
Ange ett namn i Notification Hub.
Ange ett namn i Skapa ett nytt namnområde. En namnrymd innehåller en eller flera hubbar.
Välj ett värde i listrutan Plats . Det här värdet anger den plats där du vill skapa hubben.
Välj en befintlig resursgrupp i Resursgrupp eller skapa en ny.
Välj Skapa.
Välj Meddelanden (klockikonen) och välj sedan Gå till resurs. Du kan också uppdatera listan på sidan Notification Hubs och välja din hubb.
Välj Åtkomstprinciper i listan. Observera att två anslutningssträng är tillgängliga. Du behöver dem senare för att hantera push-meddelanden.
Viktigt!
Använd inte principen DefaultFullSharedAccessSignature i ditt program. Den här principen ska endast användas i appens serverdel.
Konfigurera Firebase Cloud Messaging-inställningar för hubben
I den vänstra rutan under Inställningar väljer du Google (GCM/FCM).
Ange servernyckeln för FCM-projektet som du sparade tidigare.
I verktygsfältet väljer du Spara.
Azure-portalen visar ett meddelande om att hubben har uppdaterats. Knappen Spara är inaktiverad.
Meddelandehubben har nu konfigurerats för att fungera med Firebase Cloud Messaging. Du har också de anslutningssträng som krävs för att skicka meddelanden till en enhet och registrera en app för att ta emot meddelanden.
Anslut appen till meddelandehubben
Lägga till Google Play-tjänster till projektet
I Android Studio väljer du Verktyg på menyn och sedan SDK Manager.
Välj målversionen av Android SDK som används i projektet. Välj sedan Visa paketinformation.
Välj Google-API:er om det inte redan är installerat.
Växla till fliken SDK-verktyg . Om du inte redan har installerat Google Play Services väljer du Google Play Services enligt följande bild. Välj sedan Använd för att installera. Anteckna SDK-sökvägen för användning i ett senare steg.
Om du ser dialogrutan Bekräfta ändringen väljer du OK. Komponentinstallationsprogrammet installerar de begärda komponenterna. Välj Slutför när komponenterna har installerats.
Välj OK för att stänga dialogrutan Inställningar för nya projekt.
Lägga till Azure Notification Hubs-bibliotek
I filen build.gradle för appen lägger du till följande rader i avsnittet beroenden:
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'
Lägg till följande lagringsplats efter avsnittet beroenden:
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() maven { url 'https://example.io' } } }
Lägg till stöd för Google Firebase
Lägg till följande plugin-program i slutet av filen om det inte redan finns där.
apply plugin: 'com.google.gms.google-services'
Välj Synkronisera nu i verktygsfältet.
Lägg till kod
Skapa ett NotificationHubListener-objekt som hanterar avlyssning av meddelanden från 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()); } } } }
OnCreate
I -metoden förMainActivity
klassen lägger du till följande kod för att starta notification hubs-initieringsprocessen när aktiviteten skapas:@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"); }
I Android Studio går du till menyraden och väljer Skapa och sedan Återskapa projekt för att se till att det inte finns några fel i koden. Om du får ett felmeddelande om ikonen ic_launcher tar du bort följande instruktion från filen AndroidManifest.xml:
android:icon="@mipmap/ic_launcher"
Kontrollera att du har en virtuell enhet för att köra appen. Om du inte har en lägger du till en på följande sätt:
Kör appen på den valda enheten och kontrollera att den har registrerats med hubben.
Kommentar
Registreringen kan misslyckas under den första starten tills
onTokenRefresh()
metoden för instans-ID-tjänsten anropas. En uppdatering bör initiera en lyckad registrering med meddelandehubben.
Skicka ett testmeddelande
Du kan skicka push-meddelanden till din meddelandehubb från Azure-portalen på följande sätt:
I Azure-portalen går du till meddelandehubbens sida för din hubb och väljer Testa skicka i avsnittet Felsökning .
I Plattformar väljer du Android.
Välj Skicka. Du ser inget meddelande på Android-enheten ännu eftersom du inte har kört mobilappen på den. När du har kört mobilappen väljer du knappen Skicka igen för att se meddelandet.
Se resultatet av åtgärden i listan längst ned på portalsidan.
Du ser meddelandet på enheten.
Push-meddelanden skickas normalt i en serverdelstjänst, till exempel Mobile Apps eller ASP.NET med hjälp av ett kompatibelt bibliotek. Om ett bibliotek inte är tillgängligt för serverdelen kan du också använda REST-API:et direkt för att skicka meddelanden.
Kör mobilappen i emulatorn
Innan du testar push-meddelanden i en emulator kontrollerar du att emulatoravbildningen stöder den Google API-nivå som du har valt för din app. Om din avbildning inte stöder interna Google-API:er kan du få ett SERVICE_NOT_AVAILABLE undantag.
Kontrollera också att du har lagt till ditt Google-konto i den emulator som körs under Inställningar> Konton. Annars kan dina försök att registrera dig med FCM leda till ett AUTHENTICATION_FAILED undantag.
Nästa steg
I den här självstudien använde du Firebase Cloud Messaging för att skicka meddelanden till alla Android-enheter som har registrerats med tjänsten. Information om hur du skickar meddelanden till specifika enheter finns i följande självstudie:
Följande är en lista över några andra självstudier för att skicka meddelanden:
Azure Mobile Apps: Ett exempel på hur du skickar meddelanden från en mobile apps-serverdel som är integrerad med Notification Hubs finns i Lägga till push-meddelanden i din iOS-app.
ASP.NET: Använd Notification Hubs för att skicka push-meddelanden till användare.
Azure Notification Hubs Java SDK: Se Använda Notification Hubs från Java för att skicka meddelanden från Java. Det här har testats i Eclipse för Android-utveckling.