Kurz: Odesílání nabízených oznámení do zařízení s Androidem pomocí sady Firebase SDK verze 1.0.0-preview1

V tomto kurzu se dozvíte, jak používat Azure Notification Hubs a aktualizovanou verzi sady FIREBASE Cloud Messaging (FCM) SDK (verze 1.0.0-preview1) k odesílání nabízených oznámení do aplikace pro Android. V tomto kurzu vytvoříte prázdnou aplikaci pro Android, která přijímá nabízená oznámení pomocí služby Firebase Cloud Messaging (FCM).

Poznámka:

Informace o vyřazení a migraci služby Firebase Cloud Messaging najdete v tématu Migrace služby Google Firebase Cloud Messaging.

Dokončený kód pro tento kurz si můžete stáhnout z GitHubu.

Tento kurz se zabývá následujícími kroky:

  • Vytvoříte projekt v Android Studiu.
  • Vytvoříte projekt Firebase, který podporuje Firebase Cloud Messaging.
  • Vytvoříte centrum oznámení.
  • Připojení aplikaci do centra.
  • Otestujete aplikaci.

Požadavky

K dokončení tohoto kurzu potřebujete mít aktivní účet Azure. Během několika minut si můžete vytvořit bezplatný zkušební účet, pokud ho ještě nemáte. Podrobnosti najdete v článku Bezplatná zkušební verze Azure.

Poznámka:

Rozhraní API Google/Firebase se v oblastech Azure China nepodporují.

Potřebujete také následující položky:

  • Doporučuje se nejnovější verze Android Studia .
  • Minimální podpora je úroveň rozhraní API 19.

Vytvoření projektu Android Studio

Prvním krokem je vytvoření projektu v Android Studiu:

  1. Spusťte Android Studio.

  2. Vyberte Soubor, pak vyberte Nový a pak Nový projekt.

  3. Na stránce Zvolit projekt vyberte Prázdnou aktivitu a pak vyberte Další.

  4. Na stránce Konfigurace projektu postupujte takto:

    1. Zadejte název aplikace.
    2. Zadejte umístění, do kterého chcete uložit soubory projektu.
    3. Vyberte Dokončit.

    Konfigurace projektu

Vytvoření projektu Firebase, který podporuje FCM

  1. Přihlaste se ke konzole Firebase. Vytvořte nový projekt Firebase, pokud jej ještě nemáte.

  2. Po vytvoření projektu vyberte Add Firebase to your Android app (Přidat Firebase do aplikace pro Android).

    Přidat Firebase

  3. Na stránce přidat Firebase na stránku aplikace pro Android postupujte takto:

    1. Jako název balíčku pro Android zkopírujte hodnotu applicationId v souboru build.gradle vaší aplikace. V tomto příkladu je com.fabrikam.fcmtutorial1appto .

      Zadání názvu balíčku

    2. Vyberte Zaregistrovat aplikaci.

  4. Vyberte Stáhnout google-services.json, uložte soubor do složky aplikace projektu a pak vyberte Další.

    Stažení služby Google

  5. V konzole Firebase vyberte kolečko pro váš projekt. Potom vyberte Project Settings (Nastavení projektu).

    Nastavení projektu

  6. Pokud jste soubor google-services.json nestáhli do složky aplikace projektu Android Studio, můžete to udělat na této stránce.

  7. Přepněte na kartu Cloudové zasílání zpráv .

  8. Zkopírujte a uložte klíč serveru pro pozdější použití. Tuto hodnotu použijete ke konfiguraci centra.

  9. Pokud na kartě Firebase Cloud Messaging nevidíte klíč serveru, postupujte takto:

    1. Vyberte nabídku se třemi tečkami v záhlaví Zakázané rozhraní API pro zasílání zpráv cloudu (starší verze).
    2. Postupujte podle odkazu pro správu rozhraní API v Konzole Google Cloud Console.
    3. V konzole Google Cloud Console vyberte tlačítko a povolte rozhraní API služby Google Cloud Messaging.
    4. Počkejte několik minut.
    5. Vraťte se na kartu Cloudové zasílání zpráv konzoly Firebase a aktualizujte stránku.
    6. Podívejte se, že se hlavička rozhraní API pro zasílání zpráv cloudu změnila na povolené rozhraní API pro zasílání zpráv cloudu (starší verze) a teď zobrazuje klíč serveru.

    Snímek obrazovky portálu znázorňující povolení rozhraní API pro zasílání zpráv cloudu (starší verze)

Konfigurace centra oznámení

  1. Přihlaste se k portálu Azure.

  2. V nabídce vlevo vyberte Všechny služby a pak v části Mobilní služba vyberte Notification Hubs. Výběrem ikony hvězdičky vedle názvu služby přidejte službu do oddílu OBLÍBENÉ V levé nabídce. Po přidání Notification Hubs do oblíbených položek ji vyberte v nabídce vlevo.

  3. Na stránce Notification Hubs vyberte Přidat na panelu nástrojů.

    Přidání centra

  4. Na stránce Notification Hubs postupujte takto:

    1. Zadejte název v Centru oznámení.

    2. Do pole Vytvořit nový obor názvů zadejte název. Obor názvů obsahuje jedno nebo více center.

    3. V rozevíracím seznamu Umístění vyberte hodnotu. Tato hodnota určuje umístění, ve kterém chcete centrum vytvořit.

    4. Vyberte existující skupinu prostředků ve skupině prostředků nebo vytvořte novou.

    5. Vyberte Vytvořit.

      Vytvoření centra

  5. Vyberte Oznámení (ikona zvonku) a pak vyberte Přejít k prostředku. Seznam můžete aktualizovat také na stránce Notification Hubs a vybrat centrum.

    Výběr centra

  6. Vyberte ze seznamu Zásady přístupu. Všimněte si, že jsou k dispozici dvě připojovací řetězec. Později je budete potřebovat ke zpracování nabízených oznámení.

    Zásady přístupu

    Důležité

    Nepoužívejte ve své aplikaci zásadu DefaultFullSharedAccessSignature . Tato zásada se použije jenom v back-endu aplikace.

Konfigurace nastavení služby Firebase Cloud Messaging pro centrum

  1. V levém podokně v části Nastavení vyberte Google (GCM/FCM).

  2. Zadejte klíč serveru pro projekt FCM, který jste si uložili dříve.

  3. Na panelu nástrojů vyberte Uložit.

    Klíč serveru

  4. Na webu Azure Portal se zobrazí zpráva, že centrum bylo úspěšně aktualizováno. Tlačítko Uložit je zakázané.

Vaše centrum oznámení je teď nakonfigurované tak, aby fungovalo se službou Firebase Cloud Messaging. Máte také připojovací řetězec, které jsou nezbytné k odesílání oznámení do zařízení a registraci aplikace pro příjem oznámení.

Připojte aplikaci k centru oznámení

Přidejte do projektu služby Google Play

  1. V Android Studiu vyberte Nástroje v nabídce a pak vyberte Správce sady SDK.

  2. Vyberte cílovou verzi sady Android SDK, která se používá ve vašem projektu. Pak vyberte Zobrazit podrobnosti balíčku.

    Správce sady SDK

  3. Pokud ještě není nainstalovaná, vyberte rozhraní API Google.

    Rozhraní API

  4. Přepněte na kartu Nástroje sady SDK. Pokud jste ještě nenainstalovali služby Google Play, vyberte služby Google Play, jak je znázorněno na následujícím obrázku. Pak vyberte Použít k instalaci. Poznamenejte si cestu k sadě SDK, abyste ji mohli použít později.

    Přehrát služby

  5. Pokud se zobrazí dialogové okno Potvrdit změnu , vyberte OK. Instalační program komponenty nainstaluje požadované součásti. Po instalaci komponent vyberte Dokončit .

  6. Kliknutím na tlačítko OK zavřete dialogové okno Nastavení pro nové projekty.

Přidání knihoven Azure Notification Hubs

  1. V souboru build.gradle aplikace přidejte do části závislosti následující řádky:

    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. Za oddíl závislostí přidejte následující úložiště:

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

Přidání podpory Google Firebase

  1. Pokud tam ještě není, přidejte na konec souboru následující modul plug-in.

    apply plugin: 'com.google.gms.google-services'
    
  2. Na panelu nástrojů vyberte Synchronizovat.

Přidání kódu

  1. Vytvořte objekt NotificationHubListener, který zpracovává zachycení zpráv ze služby 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());
              }
          }
       }
    }
    
  2. OnCreate Do metody MainActivity třídy přidejte následující kód, který spustí proces inicializace Notification Hubs při vytvoření aktivity:

    @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. V Android Studiu na řádku nabídek vyberte Sestavit a pak vyberte Sestavit projekt , abyste měli jistotu, že v kódu nejsou žádné chyby. Pokud se zobrazí chyba týkající se ikony ic_launcher , odeberte ze souboru AndroidManifest.xml následující příkaz:

    android:icon="@mipmap/ic_launcher"
    
  4. Ujistěte se, že máte virtuální zařízení pro spuštění aplikace. Pokud ho nemáte, přidejte ho následujícím způsobem:

    1. Správce zařízení

    2. Virtuální zařízení

    3. Spusťte aplikaci na vybraném zařízení a ověřte, že se úspěšně zaregistruje v centru.

      Registrace zařízení

      Poznámka:

      Registrace může při počátečním spuštění selhat, dokud onTokenRefresh() se nevolá metoda služby ID instance. Aktualizace by měla zahájit úspěšnou registraci v centru oznámení.

Odešlete zkušební oznámení

Nabízená oznámení můžete posílat do centra oznámení z webu Azure Portal následujícím způsobem:

  1. Na webu Azure Portal vyberte na stránce centra oznámení pro vaše centrum možnost Testovací odeslání v části Řešení potíží .

  2. V platformách vyberte Android.

  3. Vyberte Odeslat. Na zařízení s Androidem se ještě nezobrazí oznámení, protože jste na něm nespustí mobilní aplikaci. Po spuštění mobilní aplikace znovu vyberte tlačítko Odeslat , aby se zobrazila zpráva s oznámením.

  4. Podívejte se na výsledek operace v seznamu v dolní části stránky portálu.

    Odeslat testovací oznámení

  5. Na vašem zařízení se zobrazí zpráva s oznámením.

Nabízená oznámení se obvykle odesílají do back-endové služby, jako je Mobile Apps nebo ASP.NET pomocí kompatibilní knihovny. Pokud není pro váš back-end k dispozici knihovna, můžete k odesílání zpráv s oznámeními použít také rozhraní REST API.

Spuštění mobilní aplikace v emulátoru

Než otestujete nabízená oznámení v emulátoru, ujistěte se, že image emulátoru podporuje úroveň rozhraní GOOGLE API, kterou jste zvolili pro vaši aplikaci. Pokud image nepodporuje nativní rozhraní Google API, může se zobrazit výjimka SERVICE_NOT_AVAILABLE .

Ujistěte se také, že jste do spuštěné emulátoru přidali svůj účet Google v části Nastavení> Accounts. Jinak by vaše pokusy o registraci v FCM mohly vést k AUTHENTICATION_FAILED výjimce.

Další kroky

V tomto kurzu jste pomocí služby Firebase Cloud Messaging vysílali oznámení na všechna zařízení s Androidem zaregistrovaná ve službě. Pokud se chcete naučit posílat nabízená oznámení určitým zařízením, pokračujte následujícím kurzem:

Následuje seznam některých dalších kurzů pro odesílání oznámení: