Я пробовал Android Push Notification с использованием FCM на Oreo, когда я не запускаю приложение, уведомление появляется на панели уведомлений с указанием заголовка и тела, но когда я пытался отправить уведомление, когда приложение открыто Я получил уведомление с пустым названием и телом. Затем я попытался оставить приложение на заднем плане, не закрывая приложение, снова появилось уведомление с заголовком и телом.
Вот мой код службы FirebaseMessagingService:
NotificationManager notificationManager;
private static final String ADMIN_CHANNEL_ID ="default";
Uri defaultSoundUri;
int notificationId;
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
@Override public void onMessageReceived(RemoteMessage remoteMessage) {
notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
//Setting up Notification channels for android O and above
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
setupChannels();
}
notificationId = new Random().nextInt(60000);
defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, ADMIN_CHANNEL_ID)
.setChannelId(ADMIN_CHANNEL_ID) //COBA HAPUS KALO NOUGAT FORCE CLOSE (OPTIONAL)
.setSmallIcon(R.drawable.ic_launcher_background)
.setPriority(Notification.PRIORITY_HIGH) //COBA HAPUS KALO NOUGAT FORCE CLOSE (OPTIONAL)
.setContentTitle(remoteMessage.getData().get("title"))
.setContentText(remoteMessage.getData().get("message"))
.setAutoCancel(true)
.setVibrate(new long[]{0, 100, 100, 100, 100, 100})
.setSound(defaultSoundUri);
NotificationManager notificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(notificationId, notificationBuilder.build());
}
@RequiresApi(api = Build.VERSION_CODES.O)
private void setupChannels(){
CharSequence adminChannelName = getString(R.string.app_name);
String adminChannelDescription = getString(R.string.notifications_admin_channel_description);
AudioAttributes attributes = new AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_NOTIFICATION)
.build();
NotificationChannel adminChannel;
adminChannel = new NotificationChannel(ADMIN_CHANNEL_ID, adminChannelName, NotificationManager.IMPORTANCE_HIGH);
adminChannel.setDescription(adminChannelDescription);
adminChannel.enableLights(true);
adminChannel.setVibrationPattern(new long[]{0, 1000, 500, 1000});
adminChannel.setSound(defaultSoundUri, attributes);
adminChannel.enableVibration(true);
if (notificationManager != null) {
notificationManager.createNotificationChannel(adminChannel);
}
}
что я пропустил в своем коде?