Значок уведомления в строке состояния не меняется - API 23 - PullRequest
0 голосов
/ 30 мая 2018

Я установил текущее уведомление с помощью службы переднего плана.Вот код:

NotificationCompat.Builder notificationBuilder= new NotificationCompat.Builder(this,"unique")
            .setSmallIcon(R.drawable.ic_mms_black_24dp)
            .setContentTitle("My notification")
            .setContentText("Hello World!")
            .setPriority(NotificationCompat.PRIORITY_DEFAULT);

    Notification notification= notificationBuilder.build();
    startForeground(MY_ID,notification);

Но значок, который я установил на setSmallIcon(), не действует, вместо этого он показывает значок приложения по умолчанию в строке состояния и панели уведомлений, которые работают на Android 6. Однако послечто я запустил вышеуказанный код на Android 5.1.1 (API LEVEL 22), и он показывает правильный значок.Я пробовал разные типы иконок (png, xml) и все работало хорошо.Но на моем «Зефире» он показывает значок приложения по умолчанию.

Как выяснить причину?

С Android 6 (значок находится в крайнем левом углу):

From Android 6(Icon is at the left most corner

Из Android 5 (значок находится в крайнем левом углу): From Adroid 5

РЕДАКТИРОВАТЬ : Я тоже пробовал белый значок.Но все равно в уведомлении отображается значок приложения по умолчанию.Есть ли ограничения по размеру иконки?Но иконки XML очень хорошо масштабируются.

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Кажется, проблема в изготовлении ОС.В EMUI 4.0+ существует проблема, при которой пользовательские значки уведомлений не отображаются.Он показывает только значок приложения по умолчанию в строке состояния.Если ваша модель имеет EMUI, это проблема.Это руководство может помочь решить проблему - Как включить пользовательский интерфейс EMUI 4 .

0 голосов
/ 30 мая 2018

Скорее всего, потому, что ваш значок черного цвета.

Для последних версий Android значок уведомлений должен быть белого цвета.

Значки строки состояния состоят просто из белых пикселей на прозрачном фоне

Вы можете ознакомиться с рекомендациями здесь - https://developer.android.com/guide/practices/ui_guidelines/icon_design_status_bar

Также убедитесь, чточто у вас есть все правильные размеры, требуемые для разных плотностей экрана.

...