I've written the same code on my onMessageReceived()
for my FCM service. But when I fire notification from server and if the app is in the background or foreground there is no pop up and the notification is directly shown as an icon in the notification bar.
But when i try in android version 6 i am getting pop up. but when i checked in above 6 then i am not getting popup
.
public class MyFirebaseMessaging extends FirebaseMessagingService {
String title="";
String message,type,click_action;
int no_of_messages;
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
if(remoteMessage.getData().size()>0) {
message = remoteMessage.getData().get("body");
title = remoteMessage.getData().get("title");
click_action = remoteMessage.getData().get("click_action");
no_of_messages++;
ShowNotification(message);
}
else
Log.i("remoteMessage",message);
}
private void ShowNotification(String message) {
Intent intent = new Intent(click_action);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("loading_flag","load");
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT);
Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
String NOTIFICATION_CHANNEL_ID = "my_channel_id_01";
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
@SuppressLint("WrongConstant")
NotificationChannel notificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "My Notifications", NotificationManager.IMPORTANCE_MAX);
// Configure the notification channel.
notificationChannel.setDescription("Channel description");
notificationChannel.enableLights(true);
notificationChannel.setLightColor(Color.RED);
notificationChannel.setVibrationPattern(new long[]{0, 1000, 500, 1000});
notificationChannel.enableVibration(true);
notificationManager.createNotificationChannel(notificationChannel);
}
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this,NOTIFICATION_CHANNEL_ID);
// if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
// notificationBuilder.setSmallIcon(R.drawable.vadodaramunicipalcorporation);
// notificationBuilder.setColor(getResources().getColor(R.color.backgroundColor));
// } else {
// setSmallIcon(R.drawable.vadodaramunicipalcorporation)
// }
notificationBuilder.setSmallIcon(R.mipmap.vadodaramunicipalcorporation)
.setLargeIcon(BitmapFactory.decodeResource(getApplicationContext().getResources(), R.mipmap.vadodaramunicipalcorporation))
.setContentTitle("You have new "+ title)
.setDefaults(Notification.DEFAULT_ALL)
.setWhen(System.currentTimeMillis())
.setTicker("Hearty365")
.setContentInfo("Info")
.setContentText(message+" new Alerts")
.setNumber(no_of_messages)
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setStyle(new NotificationCompat.BigTextStyle())
.setContentIntent(pendingIntent)
.setPriority(Notification.PRIORITY_MAX);
notificationManager.notify(0, notificationBuilder.build());
}
}
Notification
{
"to":"token-key",
"data" : {
"body" : "4",
"title" : "Alert",
"click_action" : "Activity.DATA_CLICK"
}
}