-2

the notification doesn't show in android 8 or higher, but its works fine in android 8 lower

This bellow what i tried

String code,code1,code2,title,message,image,urlImage;
@Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        kode = remoteMessage.getData().get("code");
        kode1 = remoteMessage.getData().get("code1");
        kode2 = remoteMessage.getData().get("code2");
        title = remoteMessage.getData().get("title");
        message = remoteMessage.getData().get("message");
        image = remoteMessage.getData().get("image");
        urlImage = remoteMessage.getData().get("image");


        sendNotification_1(title,message, bitmap, code);

}


private void sendNotification_1(String title,String messageBody, Bitmap image, String kode){
        Intent intent = new Intent(this, Home.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        intent.putExtra("directto", kode);
        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent,
                PendingIntent.FLAG_ONE_SHOT);
        Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        if(image != null){
            NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
                    .setLargeIcon(convertToBitmap())/*Notification icon image*/
                    .setSmallIcon(R.drawable.logostar)
                    .setContentTitle(title)
                    .setContentText(messageBody)
                    .setStyle(new NotificationCompat.BigPictureStyle()
                            .bigPicture(image))
                    .setAutoCancel(true)
                    .setSound(defaultSoundUri)
                    .setContentIntent(pendingIntent);
            NotificationManager notificationManager =
                    (NotificationManager) 
            getSystemService(Context.NOTIFICATION_SERVICE);
            notificationManager.notify(0 /* ID of notification */, 
            notificationBuilder.build());
        }
    }

Thats above my code , it still doesn't work in android 8 higher

bellow my edited code like you all suggested but still doesn't work

enter image description here

s-dept
  • 183
  • 1
  • 5
  • 17

2 Answers2

0

Notification channel is required

NotificationChannel mChannel = null;


if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            mChannel = new NotificationChannel(idChannel, context.getString(R.string.app_name), importance);
            // Configure the notification channel.
            mChannel.setDescription(context.getString(R.string.alarm_notification));
            mChannel.enableLights(true);
            mChannel.setLightColor(Color.RED);
            mChannel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400});
            mNotificationManager.createNotificationChannel(mChannel);
        } else{
}
Rahul
  • 1,380
  • 1
  • 10
  • 24
  • I have added your code but still doesn't work , – s-dept Apr 02 '19 at 08:41
  • I have followed to adding your code, and the result you could see in my edited question above, the problem is, it still doesn't show anything notifications – s-dept Apr 02 '19 at 08:52
0

From android8 onward, need a channel associate with all notification.

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O)
        {
            int importance = NotificationManager.IMPORTANCE_HIGH;
            NotificationChannel notificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "NOTIFICATION_CHANNEL_NAME", importance);
            notificationChannel.enableLights(true);
            notificationChannel.setLightColor(Color.RED);
            notificationChannel.enableVibration(true);
            notificationChannel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400});
            assert mNotificationManager != null;
            mBuilder.setChannelId(NOTIFICATION_CHANNEL_ID);
            mNotificationManager.createNotificationChannel(notificationChannel);
}
Shanto George
  • 994
  • 13
  • 26
  • I have followed to adding your code, and the result you could see in my edited question above, the problem is, it still doesn't show anything notifications – s-dept Apr 02 '19 at 08:52
  • notificationBuilder.build()); notificationManager.notify(0 /* ID of notification */, Please interchange these lines – Shanto George Apr 02 '19 at 08:57
  • yes of course I have added it, but in image is not full maybe – s-dept Apr 02 '19 at 09:05