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:
- Az Android Studio legújabb verziója ajánlott.
- A minimális támogatás az API 19-es szintje.
Android Studio-projekt létrehozása
Az első lépés egy projekt létrehozása az Android Studióban:
Indítsa el az Android Studiót.
Válassza a Fájl, majd az Új, majd az Új projekt lehetőséget.
A Projekt kiválasztása lapon válassza az Üres tevékenység, majd a Tovább gombot.
A projekt konfigurálása lapon tegye a következőket:
- Adja meg az alkalmazás nevét.
- Adja meg azt a helyet, ahová menteni szeretné a projektfájlokat.
- Válassza a Befejezés lehetőséget.
Az FCM-et támogató Firebase-projekt létrehozása
Jelentkezzen be a Firebase konzoljába. Hozzon létre egy új Firebase-projektet, ha nem rendelkezik még ilyennel.
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.
Az Android-alkalmazáshoz a Firebase hozzáadása lapon tegye a következőket:
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
: .Válassza az Alkalmazás regisztrálása lehetőséget.
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.
A Firebase konzolján kattintson a projektjéhez tartozó fogaskerékre. Ezután kattintson a Project Settings (Projektbeállítások) elemre.
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.
Váltson a Cloud Messaging lapra.
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.
Ha nem látja a Kiszolgálókulcsot a Firebase Cloud Messaging lapon, kövesse az alábbi lépéseket:
- Válassza a letiltott Cloud Messaging API (Örökölt) címsor három pontból álló menüjét.
- Kövesse a Google Cloud Console API-kezelésére mutató hivatkozást.
- A Google Cloud Consoleban válassza a gombot a Google Cloud Messaging API engedélyezéséhez.
- Várjon néhány percet.
- Térjen vissza a Firebase-konzol Cloud Messaging (Felhőüzenetek) projektjéhez, és frissítse a lapot.
- 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.
Értesítési központ konfigurálása
Jelentkezzen be az Azure Portalra.
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.
A Notification Hubs lapon válassza a Hozzáadás lehetőséget az eszköztáron.
A Notification Hubs lapon tegye a következőket:
Adjon meg egy nevet a Notification Hubban.
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.
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.
Válasszon ki egy meglévő erőforráscsoportot az Erőforráscsoportban, vagy hozzon létre egy újat.
Válassza a Létrehozás lehetőséget.
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.
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.
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
A bal oldali panel Gépház alatt válassza a Google (GCM/FCM) lehetőséget.
Adja meg a korábban mentett FCM-projekt kiszolgálókulcsát .
Az eszköztáron válassza a Mentés lehetőséget.
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
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.
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.
Ha még nincs telepítve, válassza a Google API-kat.
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.
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.
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
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'
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
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'
Válassza a Szinkronizálás most lehetőséget az eszköztáron.
Kód hozzáadása
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()); } } } }
OnCreate
Az osztály metódusábanMainActivity
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"); }
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"
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:
Futtassa az alkalmazást a kiválasztott eszközön, és ellenőrizze, hogy sikeresen regisztrál-e a központban.
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:
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.
A platformokon válassza az Android lehetőséget.
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.
A művelet eredményét a portáloldal alján található listában tekintheti meg.
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:
Azure Mobile Apps: A Notification Hubsba integrált Mobile Apps-háttéralkalmazások értesítéseinek küldéséhez lásd : Leküldéses értesítések hozzáadása az iOS-alkalmazáshoz.
ASP.NET: A Notification Hubs használatával leküldéses értesítéseket küldhet a felhasználóknak.
Azure Notification Hubs Java SDK: How to use Notification Hubs from Java (A Notification Hubs használata Javából) oktatóprogram bemutatja, hogyan küldhetők értesítések a Javával. Ez az Eclipse-ben lett tesztelve Android-fejlesztéshez.
PHP: How to use Notification Hubs from PHP (A Notification Hubs használata PHP-val).