7

Android uygulamamda Firebase bildirimi uygulamam var. Uygulamam çalışırken, özel düzenimle bildirim görüntülenir, ancak uygulama çalışmadığında, bildirim varsayılan düzende görüntülenir. Uygulama çalışmıyorken bildirim düzenini düzenime nasıl değiştirebilirim? Ayrıca, kullanıcının bildirimleri arasında geçiş yapmasına izin vermek için paylaşılan tercihleri ​​saklıyorum. Ancak uygulama çalışmadığında, bildirim zaten görüntülenir. Bunu nasıl başarabilirim?Uygulama kapalıyken Firebase bildirimleri

@Override 
public void onMessageReceived(RemoteMessage remoteMessage) { 
    if(SettingsFragment.getReceiceNotification()){ //if user wants to receive notification 

    NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
    RemoteViews remoteViews = new RemoteViews(getPackageName(),R.layout.push_notification_layout); 

    remoteViews.setImageViewResource(R.id.push_notif_icon,R.mipmap.ic_bird_black); 

    Intent intent = new Intent(this,MainActivity.class); 
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    PendingIntent pendingIntent = PendingIntent.getActivity(this,0,intent,PendingIntent.FLAG_ONE_SHOT); 


    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this); 
    notificationBuilder.setContent(remoteViews); 
    notificationBuilder.setContentTitle("Radyo Türkkuşu"); 
    notificationBuilder.setContentText(remoteMessage.getNotification().getBody()); 

    notificationBuilder.setAutoCancel(true); 
    notificationBuilder.setSmallIcon(R.mipmap.ic_launcher); 
    notificationBuilder.setContentIntent(pendingIntent); 
    remoteViews.setTextViewText(R.id.push_title, "Radyo Türkkuşu"); 
    remoteViews.setTextViewText(R.id.push_context, remoteMessage.getNotification().getBody()); 
    //notificationBuilder.setLights (ContextCompat.getColor(MainActivity.context, R.color.pushColor), 5000, 5000); 
    notificationManager.notify(0,notificationBuilder.build()); 
    } 

} 
+0

Kodunuz nerede? –

+0

Teknik bilgi için rica ediyorum, uygulama yapmak istemiyorum – orkun

+0

Lütfen cevabımı kontrol edin efendim. –

cevap

16

Sorununuz, bildirim tepsisini kullanarak kullanıyorsunuz.

hem bildirim ve veri yükünden, arka ve ön hem de bu link

Mesajları. Bu durumda, bildirim cihazın sistem tepsisine iletilir ve veri yükü, başlatıcı Etkinliğinizin amacının dışında sunulur.

uygulama verileri yükü bildirim göstermek için kodunuzu uygulamak varsayın niyet ekstralar için değil onMessageReceived() method.I teslim edecektir arka planda durumdayken {notification:"something"}(display-message) ile {data:"something"}(data-message) kullanıyorsanız, bu nedenle uygulama olduğunda ön planda onMessageReceived() tetiktir ve istediğiniz arzu bildirimini görüntüler ama onMessageReceived() almazsanız, bunun yerine android sistemi, bildirim yükünüzle başa çıkabilir. Her zaman onMessageReceived()'u doğrulamak için sunucu kodunuzdan {notification:"something"}(display-message/notification tray)'u kaldırdınız. söz onMessageReceived() tutmak herkes için

o ön plana değil veya arka plan ziyaret ediniz Hava olursa olsun tetiklemek hep bu link

+0

İleti göndermek için firebase konsol kullanıyor musunuz? –

+0

Evet Konsolu kullanıyor. – orkun

+3

Bu yüzden. İsteği işlemek için sunucu tarafı kodunu kullanmanız gerekir.Bildiğim kadarıyla konsol her zaman bildirim yükünü kullanın. –

7

FCM iletilerin iki tipi vardır

  1. Bildirim mesajı
  2. Veri mesajı

Firebase konsolundan gönderilen iletiler şunlardır: Bildirim iletisi. OnMessageReceived() içinde ileti almak için Veri Mesajı'u kullanın. Veri Bildirim mesaj göndermek için sunucu tarafındaki kodunun altına kullanın

{ 
    "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...", 
    "data" : { 
    "Nick" : "Mario", 
    "body" : "great match!", 
    "Room" : "PortugalVSDenmark" 
    }, 
} 

Referans https://firebase.google.com/docs/cloud-messaging/concept-options#notifications_and_data_messages

0

uygulama kapalı veya arka planda çalışırken Kodunuz tetiklenebilir asla. Bkz. Firebase Notification

Yapmanız gereken şey uygulamanın nasıl başladığını kontrol etmektir, bildirime dokunun veya başlatıcı simgesine dokunun. Bunu yapmak için, bazı veriler bildirime eklenmeli ve ardından uygulamanızda ilk başlangıç ​​etkinliğinde bunları almalıdır. Onları başarılı bir şekilde alabilirseniz, uygulamanızın bildirime dokunarak başlatıldığı anlamına gelir, ardından yapmak istediğiniz şeyi yapabilirsiniz.

İlgili konular