У меня проблема с уведомлением в Android 9, значок уведомления не отображается в Android 9. Я использую приведенный ниже код для отображения значка с уведомлением.

if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    notificationBuilder.setSmallIcon(R.drawable.ic_notify);
    /* Bitmap icon = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_notify);
    notificationBuilder.setLargeIcon(icon);*/
    notificationBuilder.setColor(getResources().getColor(R.color.colorWhite));
} else {
    notificationBuilder.setSmallIcon(R.drawable.ic_notify);
}
1
Sandeep Sharma 14 Окт 2019 в 12:10
Для 5.0 Lollipop и более поздних версий значки уведомлений должны быть полностью белыми. Обратитесь: stackoverflow.com/q/30795431/6334037
 – 
Jitesh Prajapati
14 Окт 2019 в 12:15
Это уведомления, которые вы показываете для входящих push-сообщений? Если да, указали ли вы в манифесте значок уведомления по умолчанию, который будет использоваться для сообщений, полученных, когда ваше приложение работает в фоновом режиме?
 – 
Michael
14 Окт 2019 в 12:16
Я использую значок с прозрачным фоном. И он отлично отображается в android oreo @ user392117
 – 
Sandeep Sharma
14 Окт 2019 в 12:20
Я уже использую значок по умолчанию с файлом манифеста. код ниже. @ Майкл
 – 
Sandeep Sharma
14 Окт 2019 в 12:23
Вы пробовали устанавливать как маленькие, так и большие значки?
 – 
Rahul Khurana
14 Окт 2019 в 12:38

2 ответа

Наконец я нашел решение (с Android 9 )

Шаг 1. Ваше изображение будет белым с прозрачным фоном.

Шаг 2: вы установили цвет фона в соответствии со значком вашего приложения.

if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {

           notificationBuilder.setSmallIcon(R.mipmap.ic_appoint);// this is the white image with transparent background
            notificationBuilder.setColor(getResources().getColor(R.color.colorGreen));
        } else {
            notificationBuilder.setSmallIcon(R.drawable.ic_notify); // this is normal image 
        }
1
Sandeep Sharma 14 Окт 2019 в 13:33
Implementation of `Notification Builder` for below and above Lollipop OS version would be:


NotificationCompat.Builder notificationBuilder = new 
NotificationCompat.Builder(this);

notificationBuilder.setSmallIcon(getNotificationIcon(notificationBuilder));

private int getNotificationIcon(NotificationCompat.Builder 
notificationBuilder) {

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
         int color = 0x008000;
         notificationBuilder.setColor(color);
         return R.drawable.app_icon_lolipop_above;

 } 
 return R.drawable.app_icon_lolipop_below;
 }
0
MurugananthamS 14 Окт 2019 в 12:44
Пожалуйста, проверьте мой обновленный ответ, если у вас есть какие-либо вопросы, дайте мне знать
 – 
MurugananthamS
14 Окт 2019 в 12:45