2016-12-24 6 views
0
package com.bamart.mybhaskarmart.activity; 

import android.app.NotificationManager; 
import android.app.PendingIntent; 
import android.content.Context; 
import android.content.Intent; 
import android.media.RingtoneManager; 
import android.net.Uri; 
import android.support.v4.app.NotificationCompat; 
import android.util.Log; 

import com.google.firebase.messaging.FirebaseMessagingService; 
import com.google.firebase.messaging.RemoteMessage; 

import mypackage.Bhaskar.mybhaskarmart.R; 

/** 
* Created by Anil on 12/24/2016. 
*/ 
public class MyFirebaseMessagingService extends FirebaseMessagingService { 

    private static final String TAG = "MyFirebaseMsgService"; 

    public MyFirebaseMessagingService() { 
    super(); 
    } 

    @Override 
    public void onMessageReceived(RemoteMessage remoteMessage) { 
     //Displaying data in log 
     //It is optional 
     Log.d(TAG, "From: " + remoteMessage.getFrom()); 
     Log.d(TAG, "Notification Message Body: " + remoteMessage.getNotification().getBody()); 

     //Calling method to generate notification 
     sendNotification(remoteMessage.getNotification().getBody()); 
    } 

    //This method is only generating push notification 
    //It is same as we did in earlier posts 
    private void sendNotification(String messageBody) { 
     Intent intent = new Intent(this, MainActivity.class); 
     intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(), 0, intent, 
       PendingIntent.FLAG_ONE_SHOT); 

     Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
     NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) 
       .setSmallIcon(R.drawable.swadeshmarticon) 
       .setContentTitle("Firebase Push Notification") 
       .setContentText(messageBody) 
       .setAutoCancel(true) 
       .setSound(defaultSoundUri) 
       .setContentIntent(pendingIntent); 

     NotificationManager notificationManager = 
       (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 

     notificationManager.notify(0, notificationBuilder.build()); 
    } 


    @Override 
    protected Intent zzae(Intent intent) { 
     return null; 
    } 
} 

und warum zzae ovveriden Methode gibt es ich bin immer Rückruf, wenn ich Nachricht Feuer aus Feuerbasis caonsole Das ist mein Firebase Code ist, wenn ich diesen Code ausführen ich bin nicht in der Lage Nachricht bekommen ich nicht Ich weiß, warum die Nachricht nicht empfangen wird, während alles, was ich mache, korrekt ist, bitte schlage mich vor.derzeit keine Benachrichtigung erhalten Firebase mit

+0

können Sie einen Schuss Ihrer Manifest-Datei hinzufügen –

+0

Ok wait Senden bin http://paste.ofcode.org/ 3xbH7iJCbBFRgqhVNzCbGr –

Antwort

0

bearbeiten PendingIntent.FLAG_ONE_SHOT mit PendingIntent.FLAG_UPDATE_CURRENT

Versuchen Sie folgendes: -

public class MyFirebaseMessagingService extends FirebaseMessagingService { 
    private static final String TAG = "FCM Service"; 
    NotificationManager notificationManager; 
    Notification notification; 
    @Override 
    public void onMessageReceived(RemoteMessage remoteMessage) { 
     super.onMessageReceived(remoteMessage); 
     // TODO: Handle FCM messages here. 
     // If the application is in the foreground handle both data and notification messages here. 
     // Also if you intend on generating your own notifications as a result of a received FCM 
     // message, here is where that should be initiated. 
     Log.d(TAG, "From: " + remoteMessage.getFrom()); 
     Log.d(TAG, "Notification Message Body: " + remoteMessage.getNotification().getBody()); 


     sendNotification(remoteMessage.getNotification().getBody(),remoteMessage.getNotification().getTitle(),remoteMessage.getSentTime()); 
    } 

    private void sendNotification(String msg,String title,long time) { 
     Intent notifyintent=new Intent(getApplicationContext(),MainActivity.class); 
     //int id= intent.getExtras().getInt("notificationId"); 
     int id= 0; 

     PendingIntent pendingIntent=PendingIntent.getActivity(getApplicationContext(),0,notifyintent,PendingIntent.FLAG_UPDATE_CURRENT); 
     notificationManager =(NotificationManager) getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE); 
     notification= new NotificationCompat.Builder(getApplicationContext()) 
       .setContentTitle(title) 
       .setContentText(msg) 
       .setWhen(time) 
       .setDefaults(Notification.DEFAULT_SOUND) 
       .setAutoCancel(true) 
       .setSmallIcon(R.drawable.common_google_signin_btn_icon_dark) 

       .setContentIntent(pendingIntent).build(); 
     notificationManager.notify(id,notification); 
    } 
} 
+0

Warum bekomme ich einen Rückruf auf ZZAE nicht in onMessage –

+0

und auch keine Benachrichtigung im Hintergrund Zustand @Nainal –

+0

können wir nur Benachrichtigungen senden, wenn App im Vordergrund von Firebase Basiskonsole ist. Um Benachrichtigungen im Hintergrund senden zu können, müssen Sie einen Postanruf tätigen. Rufen Sie den Link https://firebase.google.com/docs/cloud-messaging/android/receive http://stackoverflow.com/questions/37711082/how-to-handle-notification-when-app-in-background- auf. in-firebase – Nainal

Verwandte Themen