Öğretici: Firebase SDK sürüm 1.0.0-preview1'i kullanarak Android cihazlara anında iletme bildirimleri gönderme

Bu öğreticide, Bir Android uygulamasına anında iletme bildirimleri göndermek için Azure Notification Hubs'ın ve Firebase Cloud Messaging (FCM) SDK'sının güncelleştirilmiş sürümünün (sürüm 1.0.0-preview1) nasıl kullanılacağı gösterilmektedir. Bu öğreticide Firebase Cloud Messaging (FCM) kullanarak anında iletme bildirimleri alan boş bir Android uygulaması oluşturacaksınız.

Not

Firebase Cloud Messaging'in kullanımdan kaldırılması ve geçiş adımları hakkında bilgi için bkz . Google Firebase Cloud Messaging geçişi.

Bu öğreticinin tamamlanmış kodunu GitHub'dan indirebilirsiniz.

Bu öğreticide aşağıdaki adımlar yer almaktadır:

  • Android Studio projesi oluşturma.
  • Firebase Cloud Messaging’i destekleyen bir Firebase projesi oluşturma.
  • Bildirim hub’ı oluşturma.
  • Uygulamanızı hub'a Bağlan.
  • Uygulamayı test etme.

Önkoşullar

Bu öğreticiyi tamamlamak için etkin bir Azure hesabınızın olması gerekir. Hesabınız yoksa yalnızca birkaç dakika içinde ücretsiz bir deneme hesabı oluşturabilirsiniz. Ayrıntılar için bkz. Azure Ücretsiz Deneme.

Not

Google/Firebase API'leri Azure Çin bölgelerinde desteklenmez.

Ayrıca aşağıdaki öğelere de ihtiyacınız vardır:

  • Android Studio'nun en son sürümü önerilir.
  • En düşük destek API düzeyi 19'dur.

Android Studio projesi oluşturma

İlk adım, Android Studio'da proje oluşturmaktır:

  1. Android Studio'yu başlatın.

  2. Dosya'yı ve ardından Yeni'yi ve ardından Yeni Proje'yi seçin.

  3. Projenizi seçin sayfasında Boş Etkinlik'i ve ardından İleri'yi seçin.

  4. Projenizi yapılandırın sayfasında aşağıdakileri yapın:

    1. Uygulama için bir ad girin.
    2. Proje dosyalarının kaydedildiği konumu belirtin.
    3. Bitir'i seçin.

    Projeyi yapılandırma

FCM’yi destekleyen bir Firebase projesi oluşturma

  1. Firebase konsolunda oturum açın. Henüz bir tane yoksa yeni bir Firebase projesi oluşturun.

  2. Projenizi oluşturduktan sonra Firebase’i Android uygulamanıza ekleyin’i seçin.

    Firebase Ekle

  3. Android uygulamanıza Firebase ekleme sayfasında aşağıdakileri yapın:

    1. Android paket adı için uygulamanızın build.gradle dosyasında applicationIddeğerini kopyalayın. Bu örnekte, şeklindedir com.fabrikam.fcmtutorial1app.

      Paket adını belirtin

    2. Uygulamayı kaydet'i seçin.

  4. google-services.json İndir'i seçin, dosyayı projenizin uygulama klasörüne kaydedin ve ardından İleri'yi seçin.

    Google hizmetini indirin

  5. Firebase konsolunda projenizin dişli simgesini seçin. Sonra, Proje Ayarları’nı seçin.

    Proje ayarları

  6. google-services.json dosyasını Android Studio projenizin uygulama klasörüne indirmediyseniz, bunu bu sayfada yapabilirsiniz.

  7. Cloud Messaging sekmesine geçin.

  8. Sunucu anahtarını kopyalayıp daha sonra kullanmak üzere kaydedin. Hub'ınızı yapılandırmak için bu değeri kullanırsınız.

  9. Firebase Cloud Messaging sekmesinde Sunucu anahtarıgörmüyorsanız şu adımları izleyin:

    1. Cloud Messaging API (Eski) Devre Dışı başlığının üç nokta menüsünü seçin.
    2. Google Cloud Console'da API'yi yönetme bağlantısını izleyin.
    3. Google Cloud Console'da Google Cloud Messaging API'sini etkinleştirmek için düğmeyi seçin.
    4. Birkaç dakika bekleyin.
    5. Firebase konsol projeniz Cloud Messaging sekmesine dönün ve sayfayı yenileyin.
    6. Cloud Messaging API üst bilgisinin Cloud Messaging API(Eski) Etkin olarak değiştirildiğini ve şimdi bir sunucu anahtarı gösterdiğini görün.

    Cloud Messaging API'sini Etkinleştirme (Eski) seçeneğini gösteren portal ekran görüntüsü.

Bildirim hub’ını yapılandırma

  1. Azure Portal’ında oturum açın.

  2. Soldaki menüden Tüm hizmetler'i ve ardından Mobil bölümünde Notification Hubs'ıseçin. Hizmeti soldaki menüden SıK KULLANıLANLAR bölümüne eklemek için hizmet adının yanındaki yıldız simgesini seçin. Sık kullanılanlara Notification Hubs'ı ekledikten sonra soldaki menüden seçin.

  3. Notification Hubs sayfasında araç çubuğunda Ekle'yi seçin.

    Hub ekle

  4. Notification Hubs sayfasında aşağıdakileri yapın:

    1. Bildirim Hub'ına bir ad girin.

    2. Yeni ad alanı oluşturma bölümüne bir ad girin. Ad alanı bir veya daha fazla hub içerir.

    3. Konum açılan listesinden bir değer seçin. Bu değer, hub'ı oluşturmak istediğiniz konumu belirtir.

    4. Kaynak Grubu'nda var olan bir kaynak grubunu seçin veya yeni bir kaynak grubu oluşturun.

    5. Oluştur'u belirleyin.

      Hub oluşturma

  5. Bildirimler'i (zil simgesi) ve ardından Kaynağa git'i seçin. Ayrıca Notification Hubs sayfasında listeyi yenileyebilir ve hub'ınızı seçebilirsiniz.

    Hub'ı seçin

  6. Listeden Erişim İlkeleri'ni seçin. İki bağlantı dizesi kullanılabilir olduğunu unutmayın. Anında iletme bildirimlerini işlemek için daha sonra bunlara ihtiyacınız olacaktır.

    Erişim ilkeleri

    Önemli

    Uygulamanızda DefaultFullSharedAccessSignature ilkesini kullanmayın. Bu ilke yalnızca uygulama arka ucunda kullanılacaktır.

Hub için Firebase Cloud Messaging ayarlarını yapılandırma

  1. Sol bölmedeki Ayarlar altında Google (GCM/FCM) öğesini seçin.

  2. Daha önce kaydettiğiniz FCM projesinin sunucu anahtarını girin.

  3. Araç çubuğunda Kaydet'i seçin.

    Sunucu anahtarı

  4. Azure portalı hub'ın başarıyla güncelleştirildiğini belirten bir ileti görüntüler. Kaydet düğmesi devre dışı bırakıldı.

Bildirim hub'ınız artık Firebase Cloud Messaging ile çalışacak şekilde yapılandırılmıştır. Ayrıca, bir cihaza bildirim göndermek ve bildirim almak için bir uygulama kaydetmek için gereken bağlantı dizesi sahipsiniz.

Uygulamanızı bildirim hub'ına bağlama

Projeye Google Play hizmetlerini ekleme

  1. Android Studio'da, menüde Araçlar'ı ve ardından SDK Yöneticisi'ni seçin.

  2. Projenizde kullanılan Android SDK'sının hedef sürümünü seçin. Ardından Paket Ayrıntılarını Göster'i seçin.

    SDK yöneticisi

  3. Henüz yüklü değilse Google API'leri'ni seçin.

    API'ler

  4. SDK Araçları sekmesine geçin. Google Play Hizmetleri'ni henüz yüklemediyseniz aşağıdaki görüntüde gösterildiği gibi Google Play Hizmetleri'ni seçin. Ardından Yüklemek için Uygula'yı seçin. SDK yolunun sonraki bir adım için olduğunu unutmayın.

    Hizmetleri yürütme

  5. Değişikliği Onayla iletişim kutusunu görürseniz Tamam'ı seçin. Bileşen yükleyicisi istenen bileşenleri yükler. Bileşenler yüklendikten sonra Son'u seçin.

  6. Yeni Projeler için Ayarlar iletişim kutusunu kapatmak için Tamam'ı seçin.

Azure Notification Hubs kitaplıkları ekleme

  1. Uygulamanın build.gradle dosyasına bağımlılıklar bölümüne aşağıdaki satırları ekleyin:

    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. Bağımlılıklar bölümünden sonra aşağıdaki depoyu ekleyin:

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

Google Firebase desteği ekleme

  1. Dosya henüz orada değilse dosyanın sonuna aşağıdaki eklentiyi ekleyin.

    apply plugin: 'com.google.gms.google-services'
    
  2. Araç çubuğunda Şimdi Eşitle'yi seçin.

Kod ekleme

  1. Azure Notification Hubs'dan gelen iletilerin kesilmesini işleyen bir NotificationHubListener nesnesi oluşturun.

    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 sınıfının yöntemindeMainActivity, etkinlik oluşturulduğunda Notification Hubs başlatma işlemini başlatmak için aşağıdaki kodu ekleyin:

    @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. Android Studio'da, menü çubuğunda Derle'yi ve ardından Kodunuzda hata olmadığından emin olmak için Projeyi Yeniden Derle'yi seçin. ic_launcher simgesiyle ilgili bir hata alırsanız, AndroidManifest.xml dosyasından aşağıdaki deyimi kaldırın:

    android:icon="@mipmap/ic_launcher"
    
  4. Uygulamayı çalıştırmak için bir sanal cihazınız olduğundan emin olun. Yoksa, aşağıdaki gibi bir tane ekleyin:

    1. Cihaz yöneticisi

    2. Sanal cihazlar

    3. Uygulamayı seçili cihazınızda çalıştırın ve hub'a başarıyla kaydedildiğini doğrulayın.

      Cihaz kaydı

      Not

      Örnek kimliği hizmetinin yöntemi çağrılana onTokenRefresh() kadar ilk başlatma sırasında kayıt başarısız olabilir. Yenileme, bildirim hub'ına başarılı bir kayıt başlatmalıdır.

Test bildirimi gönderme

Bildirim hub'ınıza azure portalından aşağıdaki gibi anında iletme bildirimleri gönderebilirsiniz:

  1. Azure portalında, hub'ınızın bildirim hub'ı sayfasında Sorun Giderme bölümünde Test Gönderme'yi seçin.

  2. Platformlar'da Android'i seçin.

  3. Gönder'i seçin. Android cihazda mobil uygulamayı çalıştırmadığınız için henüz bir bildirim görmezsiniz. Mobil uygulamayı çalıştırdıktan sonra, bildirim iletisini görmek için Gönder düğmesini yeniden seçin.

  4. Portal sayfasının en altındaki listede işlemin sonucuna bakın.

    Test bildirimi gönderme

  5. Cihazınızda bildirim iletisini görürsünüz.

Anında iletme bildirimleri normalde Mobile Apps gibi bir arka uç hizmetinde veya uyumlu bir kitaplık kullanılarak ASP.NET gönderilir. Arka ucunuz için bir kitaplık kullanılamıyorsa, bildirim iletileri göndermek için doğrudan REST API'yi de kullanabilirsiniz.

Öykünücüde mobil uygulamayı çalıştırma

Öykünücü içinde anında iletme bildirimlerini test etmeden önce öykünücü görüntünüzün uygulamanız için seçtiğiniz Google API düzeyini desteklediğinden emin olun. Resminiz yerel Google API'lerini desteklemiyorsa SERVICE_NOT_AVAILABLE özel durumuyla karşınıza çıkabilir.

Ayrıca, Ayarlar Accounts altında çalışan öykünücünüze Google hesabınızı eklediğinizden> emin olun. Aksi takdirde, FCM'ye kaydolma girişimleriniz AUTHENTICATION_FAILED özel durumla sonuçlanabilir.

Sonraki adımlar

Bu öğreticide, hizmete kayıtlı tüm Android cihazlarına bildirim yayınlamak için Firebase Cloud Messaging'i kullandınız. Belirli cihazlara nasıl anında iletme bildirimleri gönderileceğini öğrenmek için aşağıdaki öğreticiye ilerleyin:

Aşağıda, bildirim göndermeye yönelik diğer öğreticilerin listesi yer alır: