Firebase Cloud Messaging [FCM] (Resimli Anlatım)

Başlatan Tekyürek, 16 Aralık 2016, 21:31:17

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

FCM, GCM nin yeni versiyonudur ve buluta bağlı çevrim içi bildirim göndermek için kullanılır, daha sonra belki çevrim dışı olarak uygulama içindeki eylemler ile o cihaza özel bildirim oluşturmanın anlatımını da yapabilirim.

Linklerin Görülmesine İzin Verilmiyor Üye ol Veya Giriş Yap Adresinden 'CREATE NEW PROJECT' yapıp;

Şeklinde yapıyoruz, fakat Türkçe karakter kullanmıyoruz;


Açılan yerde 'Add Firebase to Your Android App' yazan yere tıklıyoruz;


'Package name' yazan yere uygulamamızın paket adını yazıyoruz;


'ADD APP' yazan yere tıklayınca 'google-service.json' dosyası inecektir, ardından 'Skip to the console' a tıklıyoruz;


Ardından Uygulamamızı oluşturuyoruz.

Yoksa Android Studio yu indiriyoruz bu linkten;
Linklerin Görülmesine İzin Verilmiyor Üye ol Veya Giriş Yap

Yeni bir proje oluşturuyoruz ardından projenin ana dizinindeki app dizinine inen 'google-service.json' adlı dosyayı atıyoruz. (Var olan bir proje üzerinde de yapılabilir tüm bu adımlar.)

Projenin ana dizinindeki build.gradle dosyasında gerekli yere gösterdiğim satırı ekliyoruz;

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.0'
        //Yalnızca altdaki satırı ekle.
        classpath 'com.google.gms:google-services:3.0.0'
    }
}

app dizinindeki build.gradle dosyasının en altına da bu kodu ekliyoruz;

apply plugin: 'com.google.gms.google-services'


Yine app dizinindeki build.gradle dosyasında gerekli yere gösterdiğim kodu ekliyoruz;

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.android.support:design:23.4.0'
    //yalnızca altdaki satırı ekle.
    compile 'com.google.firebase:firebase-messaging:9.0.0'
}


Daha sonra yeni 'IDServisi' adında yeni bir sınıf oluşturup package name satırından sonrasına bunları ekliyoruz;

import com.google.firebase.iid.*;

public class IDServisi extends FirebaseInstanceIdService {

    public void onTokenRefresh(){
        String refreshedToken = FirebaseInstanceId.getInstance().getToken();
        sendRegistrationToServer(refreshedToken);
    }

    private void sendRegistrationToServer(String token) {
    }
}

Ardından 'MesajServisi' adında bir sınıf oluşturup package name satırından sonrasına bunları ekliyoruz;

import android.app.*;
import android.content.*;
import android.media.*;
import android.net.*;
import android.support.v4.app.*;
import com.google.firebase.messaging.*;

public class MesajServisi extends FirebaseMessagingService{

    public void onMessageReceived(RemoteMessage remoteMessage){
        sendNotification(remoteMessage.getNotification().getBody());
    }

    private void sendNotification(String messageBody){
        Intent intent = new Intent(this, MainActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT);

        Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
                .setSmallIcon(R.mipmap.ic_launcher)
                .setContentText(messageBody)
                .setSound(defaultSoundUri)
                .setContentIntent(pendingIntent);

        NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        notificationManager.notify(0, notificationBuilder.build());
    }
}

En son bu sınıfları 'AndroidManifest.xml' dosyasının en altına bu kodları ekleyip servis olarak tanımlıyoruz;

<service
        android:name=".MesajServisi" >
        <intent-filter>
            <action
                android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>

    <service
        android:name=".IDServisi" >
        <intent-filter>
            <action
                android:name="com.google.firebase.INSTANCE_ID_EVENT" />
        </intent-filter>
    </service>

Sıra geldi bildirim gönderme işine;

Console dan 'Notifications' sekmesine girip ekranda tek buton var zaten ona basıyoruz.

Ardından şeklinde ayarlar yapıyoruz;


İstersekde bu ayarlarıda 'Advanced Options' a basıp yapıyoruz;
Sound 'Enabled' olursa bildirim giderken sesde çalar, 'Disabled' olursa da çalmaz.
Ayriyetten kodlarda bildirim sesi cihazın standart bildirim sesi olarak tanımlıdır.

Bu şekilde uygulamanın yüklü olduğu bütün cihazlara aynı anda eş zamanlı olarak bildirim atabilirsiniz.

Daha sonra bildirim atmak içinse 'Delivery date' ayarını 'Send Later' yapıyoruz.

Ayrıca console a girdiğiniz package name ve uygulamanın paket adı aynı olmalı.

Örnek;


Buda kendi projem, burada yazdığım kodları ekledim konuya örnek olarak direk bunu inceleyebilirsiniz ancak içinden 'google-service.json' dosyamı sildim;
Linklerin Görülmesine İzin Verilmiyor Üye ol Veya Giriş Yap
Linkback: Firebase Cloud Messaging [FCM] (Resimli Anlatım)
  • Gösterim 1,653 
  • Android Genel Bölümü
  • 0 Yanıtlar


Linklerin Görülmesine İzin Verilmiyor Üye ol Veya Giriş Yap


Paylaş whatsappPaylaş facebookPaylaş linkedinPaylaş twitterPaylaş myspacePaylaş redditPaylaş diggPaylaş stumblePaylaş technoratiPaylaş delicious

Benzer Konular (3)


İçerik sağlayıcı paylaşım sitesi olarak hizmet veren Replikacep.com sitemizde 5651 sayılı kanunun 8. maddesine ve T.C.Knın 125. maddesine göre tüm üyelerimiz yaptıkları paylaşımlardan kendileri sorumludur.Replikacep.com hakkında yapılacak tüm hukuksal şikayetleri İletişim sayfamızdan bize bildirdikten en geç 3 (üç) iş günü içerisinde ilgili kanunlar ve yönetmelikler çerçevesinde tarafımızca incelenerek gereken işlemler yapılacak ve site yöneticilerimiz tarafından bilgi verilecektir.
Footer menü
Hakkımızda
Bize Ulaşın
Biz Kimiz
Hizmetlerimiz