Oktatóanyag: Leküldéses értesítések küldése Android-eszközökre a Firebase SDK 1.0.0-preview1-es verziójával

Ez az oktatóanyag bemutatja, hogyan használható az Azure Notification Hubs és a Firebase Cloud Messaging (FCM) SDK (1.0.0-preview1 verzió) frissített verziója leküldéses értesítések androidos alkalmazásba való küldéséhez. Ebben az oktatóanyagban egy üres Android-alkalmazást hoz létre, amely leküldéses értesítéseket fogad a Firebase Cloud Messaging (FCM) használatával.

Feljegyzés

A Firebase Cloud Messaging elavulásával és a migrálással kapcsolatos lépésekről a Google Firebase Cloud Messaging migrálásával kapcsolatos információk találhatók.

Az oktatóanyag befejezett kódját a GitHubról töltheti le.

Ez az oktatóanyag a következő lépéseken vezet végig:

  • Android Studio-projekt létrehozása.
  • A Firebase Cloud Messaginget támogató Firebase-projekt létrehozása.
  • Értesítési központ létrehozása.
  • Csatlakozás az alkalmazást a központba.
  • Az alkalmazás tesztelése.

Előfeltételek

Az oktatóanyag elvégzéséhez egy aktív Azure-fiókra lesz szüksége. Ha nincs fiókja, néhány perc alatt létrehozhat egy ingyenes próbafiókot. További információ: Ingyenes Azure-próbafiók létrehozása.

Feljegyzés

A Google/Firebase API-k nem támogatottak az Azure China régióiban.

A következő elemekre is szüksége van:

Android Studio-projekt létrehozása

Az első lépés egy projekt létrehozása az Android Studióban:

  1. Indítsa el az Android Studiót.

  2. Válassza a Fájl, majd az Új, majd az Új projekt lehetőséget.

  3. A Projekt kiválasztása lapon válassza az Üres tevékenység, majd a Tovább gombot.

  4. A projekt konfigurálása lapon tegye a következőket:

    1. Adja meg az alkalmazás nevét.
    2. Adja meg azt a helyet, ahová menteni szeretné a projektfájlokat.
    3. Válassza a Befejezés lehetőséget.

    Projekt konfigurálása

Az FCM-et támogató Firebase-projekt létrehozása

  1. Jelentkezzen be a Firebase konzoljába. Hozzon létre egy új Firebase-projektet, ha nem rendelkezik még ilyennel.

  2. A projekt létrehozása után válassza az Add Firebase to your Android app (A Firebase hozzáadása az Android-alkalmazáshoz) lehetőséget.

    Firebase hozzáadása

  3. Az Android-alkalmazáshoz a Firebase hozzáadása lapon tegye a következőket:

    1. Android-csomagnév esetén másolja az applicationId értékét az alkalmazás build.gradle fájljában. Ebben a példában ez a következő com.fabrikam.fcmtutorial1app: .

      Csomagnév megadása

    2. Válassza az Alkalmazás regisztrálása lehetőséget.

  4. Válassza a Letöltés google-services.json lehetőséget, mentse a fájlt a projekt alkalmazásmappájába, majd válassza a Tovább gombot.

    Google-szolgáltatás letöltése

  5. A Firebase konzolján kattintson a projektjéhez tartozó fogaskerékre. Ezután kattintson a Project Settings (Projektbeállítások) elemre.

    Projektbeállítások

  6. Ha még nem töltötte le a google-services.json fájlt az Android Studio-projekt alkalmazásmappájába, ezt ezen a lapon teheti meg.

  7. Váltson a Cloud Messaging lapra.

  8. Másolja és mentse a kiszolgálókulcsot későbbi használatra. Ezt az értéket használja a központ konfigurálásához.

  9. Ha nem látja a Kiszolgálókulcsot a Firebase Cloud Messaging lapon, kövesse az alábbi lépéseket:

    1. Válassza a letiltott Cloud Messaging API (Örökölt) címsor három pontból álló menüjét.
    2. Kövesse a Google Cloud Console API-kezelésére mutató hivatkozást.
    3. A Google Cloud Consoleban válassza a gombot a Google Cloud Messaging API engedélyezéséhez.
    4. Várjon néhány percet.
    5. Térjen vissza a Firebase-konzol Cloud Messaging (Felhőüzenetek) projektjéhez, és frissítse a lapot.
    6. Ellenőrizze, hogy a Cloud Messaging API fejléce engedélyezve lett-e a Cloud Messaging API -ra (örökölt), és most egy kiszolgálókulcsot jelenít meg.

    A portál képernyőképe a Cloud Messaging API (örökölt) engedélyezéséről.

Értesítési központ konfigurálása

  1. Jelentkezzen be az Azure Portalra.

  2. Válassza a bal oldali menü Minden szolgáltatás elemét, majd a Mobil szakaszban válassza a Notification Hubs lehetőséget. A szolgáltatás neve melletti csillag ikonnal felveheti a szolgáltatást a kedvencek szakaszba a bal oldali menüben. Miután hozzáadta a Notification Hubsot a KEDVENCekhez, válassza ki a bal oldali menüben.

  3. A Notification Hubs lapon válassza a Hozzáadás lehetőséget az eszköztáron.

    Központ hozzáadása

  4. A Notification Hubs lapon tegye a következőket:

    1. Adjon meg egy nevet a Notification Hubban.

    2. Adjon meg egy nevet az Új névtér létrehozása mezőben. A névtér egy vagy több központot tartalmaz.

    3. Válasszon egy értéket a Hely legördülő listából. Ez az érték határozza meg azt a helyet, ahol létre szeretné hozni a központot.

    4. Válasszon ki egy meglévő erőforráscsoportot az Erőforráscsoportban, vagy hozzon létre egy újat.

    5. Válassza a Létrehozás lehetőséget.

      Központ létrehozása

  5. Válassza az Értesítések (a harang ikon), majd az Erőforrás megnyitása lehetőséget. A Notification Hubs lapon is frissítheti a listát, és kiválaszthatja a központot.

    Központ kiválasztása

  6. A listáról válassza a Hozzáférési szabályzatok lehetőséget. Vegye figyelembe, hogy két kapcsolati sztring érhető el. Később szüksége lesz rájuk a leküldéses értesítések kezeléséhez.

    Hozzáférési szabályzatok

    Fontos

    Ne használja a DefaultFullSharedAccessSignature házirendet az alkalmazásban. Ez a szabályzat csak az alkalmazás háttérrendszerében használható.

A központ Firebase Cloud Messaging-beállításainak konfigurálása

  1. A bal oldali panel Gépház alatt válassza a Google (GCM/FCM) lehetőséget.

  2. Adja meg a korábban mentett FCM-projekt kiszolgálókulcsát .

  3. Az eszköztáron válassza a Mentés lehetőséget.

    Kiszolgálókulcs

  4. Az Azure Portalon megjelenik egy üzenet, amely szerint a központ frissítése sikeresen megtörtént. A Mentés gomb le van tiltva.

Az értesítési központ mostantól úgy van konfigurálva, hogy működjön a Firebase Cloud Messaging szolgáltatással. Emellett rendelkezik azokkal a kapcsolati sztring is, amelyek szükségesek ahhoz, hogy értesítéseket küldjön egy eszközre, és regisztráljon egy alkalmazást az értesítések fogadásához.

Az alkalmazás csatlakoztatása az értesítési központhoz

Google Play-szolgáltatások felvétele a projektbe

  1. Az Android Studióban válassza az Eszközök lehetőséget a menüben, majd válassza az SDK Manager lehetőséget.

  2. Válassza ki a projektben használt Android SDK célverzióját. Ezután válassza a Csomag részleteinek megjelenítése lehetőséget.

    SDK-kezelő

  3. Ha még nincs telepítve, válassza a Google API-kat.

    API-k

  4. Váltson az SDK-eszközök lapra. Ha még nem telepítette a Google Play Services szolgáltatást, válassza a Google Play Servicest az alábbi képen látható módon. Ezután válassza az Alkalmaz elemet a telepítéshez. Jegyezze fel az SDK elérési útját, mert szükség lesz rá egy későbbi lépésben.

    Szolgáltatások lejátszása

  5. Ha megjelenik a Módosítás megerősítése párbeszédpanel, válassza az OK gombot. Az összetevő-telepítő telepíti a kért összetevőket. Válassza a Befejezés lehetőséget az összetevők telepítése után.

  6. Az OK gombra kattintva zárja be az Új projektek Gépház párbeszédpanelt.

Azure Notification Hubs-kódtárak hozzáadása

  1. Az alkalmazás build.gradle fájljában adja hozzá a következő sorokat a függőségek szakaszhoz:

    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. Adja hozzá a következő adattárat a függőségek szakasz után:

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

Google Firebase-támogatás hozzáadása

  1. Adja hozzá a következő beépülő modult a fájl végéhez, ha még nincs ott.

    apply plugin: 'com.google.gms.google-services'
    
  2. Válassza a Szinkronizálás most lehetőséget az eszköztáron.

Kód hozzáadása

  1. Hozzon létre egy NotificationHubListener-objektumot , amely kezeli az Azure Notification Hubsból érkező üzenetek elfogását.

    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. OnCreate Az osztály metódusában MainActivity adja hozzá a következő kódot a Notification Hubs inicializálási folyamatának elindításához a tevékenység létrehozásakor:

    @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. Az Android Studióban a menüsávon válassza a Build, majd a Project újraépítése lehetőséget, hogy biztosan ne legyenek hibák a kódban. Ha hibaüzenetet kap a ic_launcher ikonnal kapcsolatban, távolítsa el a következő utasítást a AndroidManifest.xml fájlból:

    android:icon="@mipmap/ic_launcher"
    
  4. Győződjön meg arról, hogy rendelkezik egy virtuális eszközzel az alkalmazás futtatásához. Ha nem rendelkezik ilyenel, az alábbiak szerint vegyen fel egyet:

    1. Eszközkezelő

    2. Virtuális eszközök

    3. Futtassa az alkalmazást a kiválasztott eszközön, és ellenőrizze, hogy sikeresen regisztrál-e a központban.

      Eszköz regisztrálása

      Feljegyzés

      Előfordulhat, hogy a regisztráció sikertelen lesz a kezdeti indítás során, amíg a onTokenRefresh() példányazonosító-szolgáltatás metódusát meg nem hívja. A frissítésnek sikeres regisztrációt kell kezdeményeznie az értesítési központban.

Tesztértesítés küldése

Leküldéses értesítéseket küldhet az értesítési központnak az Azure Portalról az alábbiak szerint:

  1. Az Azure Portal értesítési központjának lapján válassza a Küldés tesztelése lehetőséget a Hibaelhárítás szakaszban.

  2. A platformokon válassza az Android lehetőséget.

  3. Válassza az Küldés lehetőséget. Az Android-eszközön még nem jelenik meg értesítés, mert még nem futtatta rajta a mobilalkalmazást. A mobilalkalmazás futtatása után kattintson ismét a Küldés gombra az értesítési üzenet megtekintéséhez.

  4. A művelet eredményét a portáloldal alján található listában tekintheti meg.

    Tesztértesítés küldése

  5. Megjelenik az értesítési üzenet az eszközön.

A leküldéses értesítések általában egy háttérszolgáltatásban, például a Mobile Appsben vagy ASP.NET kompatibilis kódtár használatával érkeznek. Ha egy kódtár nem érhető el a háttérrendszerhez, a REST API-t közvetlenül is használhatja értesítési üzenetek küldéséhez.

A mobilalkalmazás futtatása emulátoron

Mielőtt teszteli a leküldéses értesítéseket egy emulátoron belül, győződjön meg arról, hogy az emulátor képe támogatja az alkalmazáshoz választott Google API-szintet. Ha a rendszerkép nem támogatja a natív Google API-kat, Standard kiadás RVICE_NOT_AVAILABLE kivételt kaphat.

Győződjön meg arról is, hogy hozzáadta Google-fiókját a futó emulátorhoz a Gépház> Accounts alatt. Ellenkező esetben az FCM-ben való regisztrálási kísérletek AUTHENTICATION_FAILED kivételt eredményezhetnek.

Következő lépések

Ebben az oktatóanyagban a Firebase Cloud Messaging használatával küldött értesítéseket a szolgáltatásban regisztrált összes Android-eszközre. Ha szeretné megtudni, hogy hogyan küldhet leküldéses értesítéseket adott eszközökre, lépjen tovább a következő oktatóanyagra:

Az alábbiakban néhány további, értesítések küldésére vonatkozó oktatóanyagot talál: