Huawei Push Kit ve Android Notification

Oguz Ozsoy
Huawei Developers - Türkiye
4 min readMay 12, 2020

Merhabalar,

Bu yazımda Huawei’ nin Push Kit servisini kullanarak telefonumuza Huawei konsol ve Postman ile nasıl bildirim göndereceğimizi göstereceğim.

Huawei Push Kit

Push Kit, HMS içeren cihazlarda kullanıcılara anlık bildirimler gönderebilmemiz için Huawei tarafından geliştirilmiş bir mobil servistir. Push Kit, uygulamamızı uzun süredir kullanmayan kullanıcıları geri çekmek, kampanyalar hakkında bilgi vermek, günlük hatırlatıcılar göndermek gibi birçok iş için kullanılabilir.

Push Kit Data mesajı ve Notification mesajı olmak üzere 2 mesaj tipini desteklemektedir. Örneğimizde bu iki mesaj tipini de kullanacağız.

1. Proje ayarları

Huawei Console Project Settings sayfasını açalım. Data Storage Location’ ı Avrupa için Germany olacak şekilde seçelim.

Server konumunu seçtikten sonra SHA-256 fingerprint oluşturmamız ve projemize eklememiz gerekiyor. Android Studio’ da Gradle yardımı ile kolayca fingerprint oluşturabiliriz. Aşağıdaki adımları takip ederek fingerprint oluşturalım ve projemize ekleyelim.

View -> Tool Windows -> Gradle -> Tasks -> Android -> signingReport yardımı ile fingerprint oluşturalım.

Huawei Console’ da project settings altındaki SHA-256 certificate fingerprint kısmına oluşturduğumuz bu fingerprinti ekleyelim.

2. Push Servisini Aktifleştirme

Huawei Konsole -> Project Settings -> Manage APIs sekmesinde Push Kit servisini aktifleştirelim.

Sol tarafta bulunan menüden Push Kiti seçelim ve Enable Now butonuna tıklayarak servisi aktifleştirelim.

3. Servis dosyasını Android projesine ekleme

Project Settings sayfasında agconnect-services.json butonuna tıklayarak servis dosyasını indirelim.

İndirdiğimiz bu dosyayı Android Studio’ da app klasörünün altına kopyalayalım.

4. Gradle dependecylerini ekleme

  • Proje seviyesindeki build.gradle dosyasına aşağıdaki dependecyleri ekleyelim.
buildscript {
repositories {
...
maven {url 'http://developer.huawei.com/repo/'}
}
dependencies {
...
classpath 'com.huawei.agconnect:agcp:1.2.1.301'
}
}
allprojects {
repositories {
google()
jcenter()
maven {url 'http://developer.huawei.com/repo/'}

}
}
allprojects {
repositories {
...

maven {url 'http://developer.huawei.com/repo/'}

}
}
  • Uygulama servisyesindeki build.gradle dosyasına

— build dependencyleri ekleme

dependencies {
implementation 'com.huawei.hms:push:4.0.3.301'
}

— Apply plugin’i ekleme (build.gradle’ın en üst satırına)

apply plugin: 'com.huawei.agconnect'

Entegrasyon adımlarını tamamladık artık kodlayamaya başlayabiliriz.

Push Notification

Bir cihaza push notification gönderdiğimiz zaman sistem uygulamayı çalıştırmadan bu bildirim Bildirim Merkezinde (NC) görüntüler.

Huawie Push Kit’ i kullanarak cihaza bildirim gönderebilmek için cihazın push token alması gerekiyor. MainActivity onCreate() metodunda push token alalım. Logcat’i açarak aldığımız bu token’ ı kopyalayalım daha sonra bildirim gönderirken kullanacağız.

MainActivity.java

Token aldıktan sonra artık cihazımıza Push Notification gönderebiliriz.

Huawei Konsol uygulama ekranında operate -> Push Kit -> Add notification butonuna tıklayarak bildirim gönderme sayfasını açalım.

Gerekli alanları dolduralım. Bildirim tipi Notification Message olmalı. Test effect seçeneği ile yada push scope’ u Specified Device seçerek almış olduğumuz token’ a bildirim gönderebiliriz.

Data Message

Bir cihaza data message gönderdiğimiz zaman uygulama içerisinde yazmış olduğumuz servis sınıfı tetiklenir biz bu servis sınıfında gönderdiğimiz mesajı alırız ve kullanıcıya bir bildirim göstermek istiyorsak bu bildirimi gösterebiliriz. Bu örnekte oluşturduğumuz 2 bildirim kanalını kullanarak kullanıcıya bildirim göstereceğiz.

Android Notification Channel Oluşturma

Bildirimleri göstermek için 2 tane notification channel oluşturacağız. Bunun için uygulamamıza App adında bir Application sınıfı ekleyelim ve AndroidManifest.xml’ de bu Application sınıfını tanımlayalım.

<application
android:name=".App"
...
</application>

App sınıfımızın onCreate metodunda Bildirim kanallarımızı oluşturalım.

App.java

Uygulama içerisinde kullandığımız sabitler

Constant.java

Android bildirimler kullanım için hazır. Telefonunuzdan Ayarlar -> Uygulamalar -> Uygulamalar -> Uygulama Adı -> Bildirimler sayfasına giderek oluşturduğumuz bu iki bildirim kanalını görebilirsiniz.

HuaweiPushService adında bir sınıf oluşturalım ve HmsMessageServisi extends edelim. onMessageReceived metodunda bildirim aldıktan sonra bu mesaj ile bir bildirim oluşturalım.

HuaweiPushService.java

Oluşturduğumuz bu servisi manifest dosyasına ekleyelim.

<application
...
<service android:name=".HuaweiPushService"
android:exported="false">
<intent-filter>
<action android:name="com.huawei.push.action.MESSAGING_EVENT" />
</intent-filter>
</service>

</application>

Servis sınıfımızı da ekledikten sonra Huawei Konsol yardımı ile uygulamamıza data mesajı gönderebiliriz. Bildirim tipi Data Message olmalı.

Postman ile test etme

Uygulamamızı Postman ile aşağıdaki adımları takip ederek test edebilirsiniz.

PushKitCollection.json

  1. Postman collection’ ı indiriniz.
  2. Postman -> file -> import seçeneği ile bu dosyayı import ediniz.
  3. Get access token dosyasını açınız ve Body içerisinde bulunan app_id ve app_secret değerlerini Huawei konsolda uygulama ana sayfasındaki App ID ve App secret değerleri ile değiştiriniz.
  4. Send notification ve Send data message dosyalarındaki linkte bulunan app_id değerini konsolda uygulama sayfasındaki App ID ile değiştiriniz.
  5. Send notification ve Send data message dosyalarını açınız ve Body içerisinde bulunan push_token kısmını uygulama loglarından aldığımız token ile değiştiriniz.
  6. Get access token dosyasını açınız ve Send butonuna tıklayarak access token alınız. Access token 3600 saniye geçerlidir ve daha sonrasında yenilemeniz gerekmektedir.
  7. Send notification ve Send data message dosyasını açınız ve Authorization içerisinde bulunan access_token kısmını 6. adımda aldığımız access token ile değiştiriniz. Access token içerisinde bulunan \ karakterlerini silmeyi unutmayınız

Bu yazımda HMS Push Kit ve Android Notification kullanarak android cihazlara bildirim göndermeyi anlatmaya çalıştım. Umarım faydalı olmuştur.

Referanslar

--

--