Samouczek: wysyłanie powiadomień wypychanych do urządzeń z systemem Android przy użyciu zestawu Firebase SDK w wersji 1.0.0-preview1

W tym samouczku pokazano, jak używać usługi Azure Notification Hubs i zaktualizowanej wersji zestawu SDK firebase Cloud Messaging (FCM) (wersja 1.0.0-preview1) do wysyłania powiadomień wypychanych do aplikacji systemu Android. W tym samouczku utworzysz pustą aplikację dla systemu Android, która odbiera powiadomienia wypychane przy użyciu usługi Firebase Cloud Messaging (FCM).

Uwaga

Aby uzyskać informacje na temat wycofywania i migracji usługi Firebase Cloud Messaging, zobacz Migracja usługi Google Firebase Cloud Messaging.

Ukończony kod tego samouczka można pobrać z usługi GitHub.

Ten samouczek obejmuje następujące kroki:

  • Tworzenie projektu programu Android Studio.
  • Tworzenie projektu Firebase obsługującego usługę Firebase Cloud Messaging.
  • Tworzenie centrum powiadomień.
  • Połączenie aplikację do centrum.
  • Testowanie aplikacji.

Wymagania wstępne

Do wykonania kroków tego samouczka potrzebne jest aktywne konto platformy Azure. Jeśli go nie masz, możesz utworzyć bezpłatne konto próbne w zaledwie kilka minut. Aby uzyskać szczegółowe informacje, zobacz Bezpłatna wersja próbna platformy Azure.

Uwaga

Interfejsy API Google/Firebase nie są obsługiwane w regionach Azure (Chiny).

Potrzebne są również następujące elementy:

  • Zalecana jest najnowsza wersja programu Android Studio .
  • Minimalna obsługa to poziom 19 interfejsu API.

Tworzenie projektu programu Android Studio

Pierwszym krokiem jest utworzenie projektu w programie Android Studio:

  1. Uruchom program Android Studio.

  2. Wybierz pozycję Plik, a następnie wybierz pozycję Nowy, a następnie pozycję Nowy projekt.

  3. Na stronie Wybieranie projektu wybierz pozycję Puste działanie, a następnie wybierz pozycję Dalej.

  4. Na stronie Konfigurowanie projektu wykonaj następujące czynności:

    1. Wprowadź nazwę aplikacji.
    2. Określ lokalizację, w której mają być zapisywane pliki projektu.
    3. Wybierz Zakończ.

    Konfigurowanie projektu

Tworzenie projektu Firebase obsługującego usługę FCM

  1. Zaloguj się do konsoli Firebase. Utwórz nowy projekt Firebase, jeśli jeszcze go nie masz.

  2. Po utworzeniu projektu wybierz pozycję Dodaj Firebase do swojej aplikacji dla systemu Android.

    Dodawanie bazy firebase

  3. Na stronie Dodawanie bazy firebase do aplikacji systemu Android wykonaj następujące czynności:

    1. W polu Nazwa pakietu systemu Android skopiuj wartość applicationId w pliku build.gradle aplikacji. W tym przykładzie jest to com.fabrikam.fcmtutorial1app.

      Określ nazwę pakietu

    2. Wybierz pozycję Zarejestruj aplikację.

  4. Wybierz pozycję Pobierz google-services.json, zapisz plik w folderze aplikacji projektu, a następnie wybierz pozycję Dalej.

    Pobieranie usługi Google

  5. W konsoli usługi Firebase wybierz koło zębate dla projektu. Następnie wybierz pozycję Ustawienia projektu.

    Ustawienia projektu

  6. Jeśli plik google-services.json nie został pobrany do folderu aplikacji projektu programu Android Studio, możesz to zrobić na tej stronie.

  7. Przejdź do karty Cloud Messaging (Obsługa komunikatów w chmurze).

  8. Skopiuj i zapisz klucz serwera do późniejszego użycia. Ta wartość służy do konfigurowania centrum.

  9. Jeśli na karcie Firebase Cloud Messaging nie widzisz kluczaserwera, wykonaj następujące kroki:

    1. Wybierz menu z trzema kropkami w nagłówku Wyłączony interfejs API obsługi komunikatów w chmurze (starsza wersja).
    2. Postępuj zgodnie z linkiem do sekcji Zarządzanie interfejsem API w konsoli Google Cloud Console.
    3. W konsoli Google Cloud Console wybierz przycisk, aby włączyć interfejs API usługi Google Cloud Messaging.
    4. Zaczekaj kilka minut.
    5. Wróć do karty Cloud Messaging projektu konsoli Firebase i odśwież stronę.
    6. Zobacz, że nagłówek interfejsu API usługi Cloud Messaging został zmieniony na włączony interfejs API usługi Cloud Messaging (starsza wersja), a teraz wyświetla klucz serwera.

    Zrzut ekranu portalu przedstawiający interfejs API włączania obsługi komunikatów w chmurze (starsza wersja).

Konfigurowanie centrum powiadomień

  1. Zaloguj się w witrynie Azure Portal.

  2. Wybierz pozycję Wszystkie usługi w menu po lewej stronie, a następnie wybierz pozycję Notification Hubs w sekcji Mobile . Wybierz ikonę gwiazdki obok nazwy usługi, aby dodać usługę do sekcji ULUBIONE w menu po lewej stronie. Po dodaniu usługi Notification Hubs do pozycji ULUBIONE wybierz je w menu po lewej stronie.

  3. Na stronie Notification Hubs wybierz pozycję Dodaj na pasku narzędzi.

    Dodawanie koncentratora

  4. Na stronie Notification Hubs wykonaj następujące czynności:

    1. Wprowadź nazwę w centrum powiadomień.

    2. Wprowadź nazwę w obszarze Tworzenie nowej przestrzeni nazw. Przestrzeń nazw zawiera co najmniej jedno centrum.

    3. Wybierz wartość z listy rozwijanej Lokalizacja . Ta wartość określa lokalizację, w której chcesz utworzyć centrum.

    4. Wybierz istniejącą grupę zasobów w grupie zasobów lub utwórz nową.

    5. Wybierz pozycję Utwórz.

      Tworzenie centrum

  5. Wybierz pozycję Powiadomienia (ikona dzwonka), a następnie wybierz pozycję Przejdź do zasobu. Możesz również odświeżyć listę na stronie Usługi Notification Hubs i wybrać centrum.

    Wybieranie centrum

  6. Wybierz z listy pozycję Zasady dostępu. Należy pamiętać, że dostępne są dwa parametry połączenia. Będą one potrzebne później do obsługi powiadomień wypychanych.

    Zasady dostępu

    Ważne

    Nie używaj zasad DefaultFullSharedAccessSignature w aplikacji. Te zasady mają być używane tylko w zapleczu aplikacji.

Konfigurowanie ustawień usługi Firebase Cloud Messaging na potrzeby centrum

  1. W okienku po lewej stronie w obszarze Ustawienia wybierz pozycję Google (GCM/FCM).

  2. Wprowadź klucz serwera dla zapisanego wcześniej projektu usługi FCM.

  3. Na pasku narzędzi wybierz pozycję Zapisz.

    Klucz serwera

  4. W witrynie Azure Portal zostanie wyświetlony komunikat o pomyślnym zaktualizowaniu centrum. Przycisk Save (Zapisz) będzie wyłączony.

Centrum powiadomień jest teraz skonfigurowane do pracy z usługą Firebase Cloud Messaging. Masz również parametry połączenia, które są niezbędne do wysyłania powiadomień do urządzenia i rejestrowania aplikacji w celu odbierania powiadomień.

Łączenie aplikacji z centrum powiadomień

Dodawanie usług Google Play do projektu

  1. W programie Android Studio wybierz pozycję Narzędzia w menu, a następnie wybierz pozycję Menedżer zestawów SDK.

  2. Wybierz docelową wersję zestawu Android SDK, która jest używana w projekcie. Następnie wybierz pozycję Pokaż szczegóły pakietu.

    Menedżer zestawu SDK

  3. Wybierz pozycję Interfejsy API Google, jeśli nie zostały jeszcze zainstalowane.

    Interfejsy API

  4. Przejdź do karty Narzędzia zestawu SDK. Jeśli jeszcze nie zainstalowano usług Google Play, wybierz pozycję Usługi Google Play, jak pokazano na poniższej ilustracji. Następnie wybierz pozycję Zastosuj , aby zainstalować. Zanotuj ścieżkę zestawu SDK, która będzie potrzebna w kolejnym kroku.

    Usługi odtwarzania

  5. Jeśli zobaczysz okno dialogowe Potwierdzanie zmiany, wybierz przycisk OK. Instalator składnika instaluje żądane składniki. Wybierz przycisk Finish (Zakończ) po zainstalowaniu składników.

  6. Wybierz przycisk OK, aby zamknąć okno dialogowe Settings for New Projects (Ustawienia nowego projektu).

Dodawanie bibliotek usługi Azure Notification Hubs

  1. W pliku build.gradle dla aplikacji dodaj następujące wiersze w sekcji zależności:

    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. Dodaj następujące repozytorium po sekcji zależności:

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

Dodawanie obsługi usługi Google Firebase

  1. Dodaj następującą wtyczkę na końcu pliku, jeśli jeszcze go nie ma.

    apply plugin: 'com.google.gms.google-services'
    
  2. Wybierz pozycję Sync Now (Synchronizuj teraz) na pasku narzędzi.

Dodawanie kodu

  1. Utwórz obiekt NotificationHubListener, który obsługuje przechwytywanie komunikatów z usługi 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 W metodzie MainActivity klasy dodaj następujący kod, aby uruchomić proces inicjowania usługi Notification Hubs po utworzeniu działania:

    @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. Na pasku menu programu Android Studio wybierz pozycję Kompiluj, a następnie wybierz pozycję Skompiluj projekt , aby upewnić się, że w kodzie nie ma żadnych błędów. Jeśli zostanie wyświetlony błąd dotyczący ikony ic_launcher , usuń następującą instrukcję z pliku AndroidManifest.xml:

    android:icon="@mipmap/ic_launcher"
    
  4. Upewnij się, że masz urządzenie wirtualne do uruchamiania aplikacji. Jeśli go nie masz, dodaj go w następujący sposób:

    1. Menedżer urządzeń

    2. Urządzenia wirtualne

    3. Uruchom aplikację na wybranym urządzeniu i sprawdź, czy została pomyślnie zarejestrowana w centrum.

      Rejestracja urządzenia

      Uwaga

      Rejestracja może zakończyć się niepowodzeniem podczas początkowego uruchamiania, dopóki onTokenRefresh() nie zostanie wywołana metoda usługi identyfikatora wystąpienia. Odświeżanie powinno zainicjować pomyślną rejestrację w centrum powiadomień.

Wysyłanie powiadomienia testowego

Powiadomienia wypychane można wysyłać do centrum powiadomień w witrynie Azure Portal w następujący sposób:

  1. W witrynie Azure Portal na stronie centrum powiadomień centrum powiadomień wybierz pozycję Wysyłanie testowe w sekcji Rozwiązywanie problemów .

  2. W obszarze Platformy wybierz pozycję Android.

  3. Wybierz Wyślij. Nie zobaczysz jeszcze powiadomienia na urządzeniu z systemem Android, ponieważ nie uruchomiono na nim aplikacji mobilnej. Po uruchomieniu aplikacji mobilnej ponownie wybierz przycisk Wyślij , aby wyświetlić komunikat z powiadomieniem.

  4. Zobacz wynik operacji na liście w dolnej części strony portalu.

    Wysyłanie powiadomienia testowego

  5. Na urządzeniu zostanie wyświetlony komunikat z powiadomieniem.

Powiadomienia wypychane są zwykle wysyłane w usłudze zaplecza, takiej jak Mobile Apps lub ASP.NET przy użyciu zgodnej biblioteki. Jeśli biblioteka nie jest dostępna dla zaplecza, możesz również użyć interfejsu API REST bezpośrednio do wysyłania komunikatów powiadomień.

Uruchamianie aplikacji mobilnej na emulatorze

Przed przetestowaniem powiadomień wypychanych wewnątrz emulatora upewnij się, że obraz emulatora obsługuje poziom interfejsu API Google wybranego dla aplikacji. Jeśli obraz nie obsługuje natywnych interfejsów API Google, może zostać wyświetlony wyjątek SERVICE_NOT_AVAILABLE .

Upewnij się również, że konto Google zostało dodane do uruchomionego emulatora w obszarze Ustawienia> Accounts. W przeciwnym razie próby zarejestrowania się w usłudze FCM mogą spowodować wystąpienie wyjątku AUTHENTICATION_FAILED .

Następne kroki

W tym samouczku użyto usługi Firebase Cloud Messaging do wysyłania powiadomień do wszystkich urządzeń z systemem Android zarejestrowanych w usłudze. Aby dowiedzieć się, jak wysyłać powiadomienia push do konkretnych urządzeń, przejdź do następującego samouczka:

Poniżej przedstawiono listę innych samouczków dotyczących wysyłania powiadomień: