Значки уведомлений в ящике должны быть белыми? - PullRequest
1 голос
/ 10 мая 2019

Мое приложение для API версии 26 или выше.

У меня проблема с маленьким значком в уведомлении.Я пошел к документации здесь, и, независимо от моей проблемы, я увидел, что упоминается, что значок должен быть белым, но, поскольку я сейчас работаю, я слушаю подкасты, используя приложение подкаст Google, и значок красочный.Так оно должно быть белым или нет?Или только приложения Google могут иметь цвета?

enter image description here

ссылка на документацию: https://developer.android.com/guide/practices/ui_guidelines/icon_design_status_bar.html

Моя проблема в том, чтов то время как мой значок появляется сверху, когда ящик закрыт (это зеленый значок рядом с цветным значком подкаста Google).Но когда драве открыт, значок не отображается, и это всего лишь пустой зеленоватый круг.

enter image description here

Вот как я строю уведомление:

                            Uri notificationSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
                            NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(something, ADMIN_CHANNEL_ID)
                                    .setSmallIcon(R.drawable.logo_fallback)
                                    .setLargeIcon(resource)
                                    .setContentTitle(remoteMessage.getData().get("title"))
                                    .setContentText(remoteMessage.getData().get("message"))
                                    .setAutoCancel(true)
                                    .setSound(notificationSoundUri)
                                    .setContentIntent(pendingIntent);

                            //Set notification color to match your app color template
                            notificationBuilder.setColor(getResources().getColor(R.color.colorPrimaryDark));
                            notificationManager.notify(notificationID, notificationBuilder.build());

и ресурс, который я использую, является PNG.Я тоже попробовал XML, но безуспешно.

1 Ответ

0 голосов
/ 10 мая 2019

Да, значок должен быть белым, Вы должны создать значок с белым и прозрачным элементом и установить заслуженный цвет фона

NotificationCompat.Builder b = new NotificationCompat.Builder(ctx,Const.NOTIFICATION_CHANNEL);

            b.setAutoCancel(true)

                    .setDefaults(Notification.DEFAULT_ALL)
                    .setWhen(System.currentTimeMillis())
                    .setBadgeIconType(R.drawable.logo)
                    .setLargeIcon(BitmapFactory.decodeResource(ctx.getResources(),R.drawable.logo))
                    .setContentTitle(title)
                    .setContentText(message)
                    .setDefaults(Notification.DEFAULT_LIGHTS | Notification.DEFAULT_SOUND)
                    .setContentIntent(contentIntent);
            if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                b.setSmallIcon(R.drawable.new_logo);
                b.setColor(ctx.getResources().getColor(R.color.green));

            } else {
                b.setSmallIcon(R.drawable.logo);
            }

Здесь логотип - цветной значок, а new_logo - белый значок

...