Android notification icon doesnt show

Содержание
  1. Push-уведомления Android: значок не отображается в уведомлении, вместо этого отображается белый квадрат
  2. Я действительно рекомендую следовать правилам дизайна Google :
  3. Попробуй это
  4. — сделать значок уведомления с прозрачным фоном. Ширина и высота приложения должны быть такими же, как ниже размеров, и вставить все это в ваш проект-> app-> src-> main-> res
  5. Не забудьте добавить этот код в файл манифеста
  6. Notification icon is not showing in android 8.0 and and above #1796
  7. Comments
  8. ghost commented Dec 27, 2018
  9. eladglobalbit commented Dec 27, 2018 •
  10. ghost commented Dec 31, 2018
  11. eladglobalbit commented Jan 1, 2019
  12. iadcg commented Jan 17, 2019
  13. stale bot commented Feb 14, 2019
  14. fachrihawari commented Feb 20, 2019 •
  15. charliejeppsson commented Feb 25, 2019
  16. fachrihawari commented Feb 26, 2019
  17. LaVielle commented Mar 21, 2019 •
  18. stale bot commented Apr 18, 2019
  19. stale bot commented May 6, 2019
  20. perlics commented Oct 23, 2019
  21. IamWinWon commented May 25, 2020
  22. LPitonakova commented Jun 9, 2020 •
  23. sumitrahate commented Jun 19, 2020
  24. mikehardy commented Jun 19, 2020
  25. Android Push-уведомления: значок не отображается в уведомлении, вместо этого отображается Белый квадрат
  26. 16 ответов:
  27. Я действительно предлагаю следовать руководство по дизайну Google:

Push-уведомления Android: значок не отображается в уведомлении, вместо этого отображается белый квадрат

Мое приложение генерирует уведомление, но значок, который я установил для этого уведомления, не отображается. Вместо этого я получаю белый квадрат.

Я попытался изменить размер png иконки (размеры 720×720, 66×66, 44×44, 22×22). Любопытно, что при использовании меньших размеров белый квадрат меньше.

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

У меня телефон Nexus 5 с Android 5.1.1. Проблема также присутствует на эмуляторах, Samsung Galaxy s4 с Android 5.0.1 и Motorola Moto G с Android 5.0.1 (оба из которых я позаимствовал, а сейчас нет)

Далее следует код для уведомлений и два скриншота. Если вам нужна дополнительная информация, пожалуйста, не стесняйтесь спрашивать ее.

Спасибо вам всем.

Причина: для 5.0 Lollipop «Значки уведомлений должны быть полностью белыми».

Если мы решим проблему с белым значком, установив целевой SDK равным 20, наше приложение не будет предназначаться для Android Lollipop, что означает, что мы не можем использовать функции, специфичные для Lollipop.

Решение для целевой СДК 21

Если вы хотите поддерживать Lollipop Material Icons, сделайте прозрачные иконки для Lollipop и выше. Пожалуйста, ознакомьтесь со следующим: https://design.google.com/icons/

Пожалуйста, посмотрите на http://developer.android.com/design/style/iconography.html , и мы увидим, что белый стиль — это способ отображения уведомлений в Android Lollipop.

В Lollipop Google также предлагает использовать цвет, который будет отображаться за белым значком уведомления. Ссылка на ссылку: https://developer.android.com/about/versions/android-5.0-changes.html

Реализация Notification Builder для версий Lollipop OS ниже и выше:

Примечание: setColor доступен только в Lollipop и влияет только на фон значка.

Это решит вашу проблему полностью !!

Если вы используете Google Cloud Messaging, эта проблема не будет решена простым изменением вашего значка. Например, это не будет работать:

Даже если ic_notification является прозрачным и белым. Он также должен быть определен в метаданных Манифеста, например так:

Метаданные идут под application тегом, для справки.

Я действительно рекомендую следовать правилам дизайна Google :

который говорит: «Значки уведомлений должны быть полностью белыми».

Объявите этот код в манифесте Android:

Я надеюсь, что это полезно для вас.

(Android Studio 3.5) Если вы используете последнюю версию Android Studio, вы можете создавать изображения для уведомлений. Щелкните правой кнопкой мыши на папке Res > New> Image Asset . Затем вы увидите Configure Image Assets, как показано на рисунке ниже. Измените Тип значка на Значки уведомлений . Ваши изображения должны быть белыми и прозрачными. Эта настройка активов изображения будет применять это правило. Важное замечание: Если вы хотите, чтобы значки использовались для облачных / push-уведомлений, необходимо добавить метаданные под тегом приложения, чтобы использовать вновь созданные значки уведомлений.

Мы можем сделать как ниже:

Создайте новый объект построителя уведомлений и вызовите, setSmallIcon() используя объект построителя уведомлений, как показано в приведенном ниже коде.

Создайте метод, в котором мы будем проверять, на какую версию ОС мы устанавливаем наше приложение. Если он ниже Lolipop, то есть API 21, тогда он возьмет обычный значок приложения с цветом фона, иначе он возьмет прозрачный значок приложения без фона. Таким образом, устройства, использующие версию os> = 21, будут устанавливать цвет фона значка, используя метод setColor() класса Notification Builder.

Читайте также:  Чем открыть htm для андроид

Образец кода:

Попробуй это

Я столкнулся с той же проблемой, я попробовал много ответов, но не получил никаких решений, наконец, я нашел способ решить свою проблему.

— сделать значок уведомления с прозрачным фоном. Ширина и высота приложения должны быть такими же, как ниже размеров, и вставить все это в ваш проект-> app-> src-> main-> res

после вышеупомянутого вставьте эту строку ниже в ваш метод onMessageReceived

Не забудьте добавить этот код в файл манифеста

добавьте эту строку в файл manifest.xml в блоке приложения

Если вы хотите предоставить значок уведомления поддержки lollipop, сделайте значок уведомления двух типов:

  1. Обычный значок уведомления: для версии ниже леденец.
  2. Значок уведомления с прозрачным фоном: для леденцов и выше.

Теперь установите соответствующий значок для построителя уведомлений во время выполнения в зависимости от версии ОС:

Наконец-то у меня есть решение этой проблемы.

Эта проблема возникает только тогда, когда приложение вообще не работает. (ни на заднем плане, ни на переднем плане) . Когда приложение работает на переднем или на заднем плане, значок уведомления отображается правильно (не белый квадрат)

Итак, мы должны установить ту же конфигурацию для значка уведомлений в Backend API, что и в Frontend.

Во внешнем интерфейсе мы использовали React Native, а для push-уведомлений мы использовали пакет response-native-fcm npm .

Мы использовали пакет fcm-push npm с использованием Node.js в качестве бэкэнда для push-уведомлений и установили структуру полезной нагрузки следующим образом.

То, что он в основном ищет для изображения messages_icon, хранящегося локально в нашей системе Android.

Уведомления отображаются в оттенках серого, как описано ниже. Они не черно-белые, несмотря на то, что написали другие. Возможно, вы видели значки с несколькими оттенками, например, шкалы силы сети.

До API 21 (Lollipop 5.0) работали цветные значки. Вы можете принудительно настроить ваше приложение на API 20, но это ограничивает возможности, доступные для вашего приложения, поэтому это не рекомендуется. Вы можете проверить работающий уровень API и соответственно установить либо цветную иконку, либо иконку в оттенках серого, но это, вероятно, не стоит. В большинстве случаев лучше всего использовать значок в оттенках серого.

Изображения имеют четыре канала RGBA (красный / зеленый / синий / альфа). Для значков уведомлений Android игнорирует каналы R, G и B. Единственный канал, который учитывается, это Альфа, также известный как непрозрачность. Создайте свой значок с помощью редактора, который дает вам контроль над альфа-значением цветов вашего рисунка.

Как альфа-значения генерируют серое изображение:

  • Альфа = 0 (прозрачный) — эти пиксели являются прозрачными, показывая цвет фона.
  • Альфа = 255 (непрозрачный) — эти пиксели белого цвета.
  • Альфа = 1 . 254 — эти пиксели в точности соответствуют вашим ожиданиям, обеспечивая оттенки между прозрачным и белым.

Изменяя это с setColor :

Вызов NotificationCompat.Builder.setColor(int argb) . Из документации для Notification.color :

Акцентный цвет (целое число ARGB, например, константы в цвете), применяемый стандартными шаблонами стилей при представлении этого уведомления. Текущий дизайн шаблона создает красочное изображение заголовка, накладывая изображение значка (трафаретное на белый) поверх поля этого цвета. Альфа-компоненты игнорируются.

Мое тестирование с использованием setColor показывает, что компоненты Alpha не игнорируются. Более высокие значения Alpha окрашивают пиксель в белый цвет. Более низкие значения альфа-канала превращают пиксель в цвет фона (черный на моем устройстве) в области уведомлений или в указанный цвет в раскрывающемся уведомлении.

Источник

Notification icon is not showing in android 8.0 and and above #1796

Comments

ghost commented Dec 27, 2018

Hi,
I am using ‘react-native-firebase’ for FCM. Android version below 8.0 the push notification icon is working fine, but android version 8.0 and above the empty push notification icon is displaying.
Can u guys please help me to fix this issue.

The text was updated successfully, but these errors were encountered:

eladglobalbit commented Dec 27, 2018 •

do u can post your Android Manifest.xml?
I think the problem is there and u not set value for your chanel

ghost commented Dec 31, 2018

Hi,
Here is my AndroidMainfest.xml

eladglobalbit commented Jan 1, 2019

#1781 u can see my and compare 🙂

iadcg commented Jan 17, 2019

@BabuAjith Hey bro. How is it going in your side now? Have you found the cause and fixed it?

stale bot commented Feb 14, 2019

Hello 👋 , this issue has been automatically marked as stale because it has not had activity for quite some time. Has the issue been fixed, or does it still require the community’s attention? This issue may be closed if no further activity occurs. Thank you for your contributions.

Читайте также:  Реальные слоты с выводом денег для андроид

fachrihawari commented Feb 20, 2019 •

@iadcg @BabuAjith hey guys, i got same problem. Are you have a solution ?

charliejeppsson commented Feb 25, 2019

@fachrihawari also tried reusing @mipmap/ic_launcher for the notification icon unsuccessfully. The solution was to instead use https://romannurik.github.io/AndroidAssetStudio/icons-notification.html to generate separate notification icon files and then adding each to the android/app/src/main/res/mipmap-hdpi, mipmap-mdpi etc directories

fachrihawari commented Feb 26, 2019

@charliejeppsson for android > v7.0 icon must be transparent. Before I use non transparent icon, and solved after change to transparent icon

LaVielle commented Mar 21, 2019 •

I have to create transparent icons (basically a white silhouette of the logo on the normal icon, with a transparent background). I called those icons ic_stat_ic_notification.png and placed them in the mipmap folders.

Then I added these lines to AndroidManifest.xml :
The first is to set the default notification icon
The second is to set the background color of the circle surrounding the icon

stale bot commented Apr 18, 2019

Hello 👋 , this issue has been automatically marked as stale because it has not had activity for quite some time. Has the issue been fixed, or does it still require the community’s attention? This issue may be closed if no further activity occurs. Thank you for your contributions.

stale bot commented May 6, 2019

Closing this issue after a prolonged period of inactivity. If this is still present in the latest release, please feel free to create a new issue with up-to-date information.

perlics commented Oct 23, 2019

You probably need a transparent notification icon. What I think happens is you have a background and Android colors your icon depending on the theme. Just make it transparent and it will be ok.

IamWinWon commented May 25, 2020

My problem was MIUI os. it is their bug.

LPitonakova commented Jun 9, 2020 •

So I’ve been using the wix react-native-notifications library to display my notifications. Turns out they chose to write custom code to completely override whatever you set in your metadata!

I discovered this by searching for Notification.Builder in the whole project. There is a piece of code that looks explicitly for a file in drawable/ called notification_icon .

So the solution is to create 1 icon which is transparent + white color and put it in as drawable/notification_icon.png

I can’t believe somebody would write a confusing piece of code like this but that’s the horrors of open source for you :/

sumitrahate commented Jun 19, 2020

can any body help me , i am having the same issue notification icon showing in gray background, i have added transparent background icon but still not fix for me

mikehardy commented Jun 19, 2020

@sumitrahate no one will be able to help I am afraid, it will be a project-specific issue. You can create a super-tiny throwaway react-native app and just using snippets from StackOverflow have it throw up a notification to replicate and poke around until you get the icon references correct etc.

Источник

Android Push-уведомления: значок не отображается в уведомлении, вместо этого отображается Белый квадрат

мое приложение генерирует уведомление, но значок, который я установил для этого уведомления, не отображается. Вместо этого я получаю Белый квадрат.

Я попытался изменить размер png значка (размеры 720×720, 66×66, 44×44, 22×22). Любопытно, что при использовании меньших размеров Белый квадрат меньше.

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

мой телефон-это Nexus 5 с Android 5.1.1. Проблема также присутствует на эмуляторах, Samsung Galaxy s4 с Android 5.0.1 и Motorola Moto G с Android 5.0.1 (оба из которых я заимствовал, и не имею прямо сейчас)

код для уведомлений следует, и два скриншота. Если вам нужна дополнительная информация, пожалуйста, не стесняйтесь спрашивать об этом.

16 ответов:

причина: для 5.0 Lollipop «значки уведомлений должны быть полностью белыми».

Если мы решим проблему с белым значком, установив целевой SDK на 20, наше приложение не будет нацелен на Android Lollipop, а это значит, что мы не можем использовать Леденец-специфические особенности.

решение для целевого Sdk 21

Читайте также:  Android studio заставка при запуске

Если вы хотите поддерживать значки материала леденца, то сделайте прозрачные значки для леденца и выше версии. Обратиться следующий: https://design.google.com/icons/

пожалуйста, посмотрите на http://developer.android.com/design/style/iconography.html, и мы увидим, что белый стиль-это то, как уведомления должны отображаться в Android Lollipop.

в Lollipop Google также предлагает использовать цвет, который будет отображаться за белым значком уведомления. Приведи Ссылку: https://developer.android.com/about/versions/android-5.0-changes.html

реализация Notification Builder для версии ниже и выше Lollipop OS будет:

Примечание: setColor доступен только в леденец, и это влияет только к фону значка.

это решит вашу проблему полностью!!

Если вы используете Google Cloud Messaging, то эта проблема не будет решена просто изменив значок. Например, это не будет работать:

даже если ic_notification является прозрачным и белым. Он также должен быть определен в метаданных Манифеста, например:

метаданные идут под application тег, для справки.

Я действительно предлагаю следовать руководство по дизайну Google:

, который сказал «значки уведомлений должны быть полностью белый.»

объявите этот код в Манифесте Android:

Я надеюсь, что это полезно для вас.

создайте новый объект построителя уведомлений и вызовите setSmallIcon() С помощью объекта Notification builder, как в приведенном ниже коде.

создайте метод, в котором мы будем проверять, на какой версии ОС мы устанавливаем наше приложение . Если он находится ниже Lolipop I. E API 21, то он будет принимать обычный значок приложения с цветом фона иначе он будет принимать прозрачный значок приложения без фона. Таким образом, устройства, использующие версию ОС >= 21, установят фон цвет значка с помощью метода setColor() класса построителя уведомлений.

Пример Кода:

наконец-то у меня есть решение этой проблемы.

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

Итак, мы должны установить ту же конфигурацию значка уведомления в интерфейсах API, что и в интерфейсе.

в интерфейс мы использовали Реагировать Уроженца и для уведомления толчка мы использовали react-native-FCM npm package.

мы использовали FCM-push npm package используя узел.js в качестве бэкэнда для push-уведомлений и установить структуру полезной нагрузки следующим образом.

что он в основном ищет notification_icon изображение, хранящееся локально в нашей системе Android.

Если вы хотите предоставить значок уведомления о поддержке lollipop, сделайте значок уведомления двух типов:

  1. обычный значок уведомления: для ниже леденец версии.
  2. значок уведомления с прозрачным фоном : для Lollipop и выше версии.

теперь установите соответствующий значок в Notification builder во время выполнения базы на версии ОС:

уведомления оттенков серого как объяснено ниже. Они не черно-белые, несмотря на то, что пишут другие. Вероятно, вы видели значки с несколькими оттенками, например, полосы прочности сети.

до API 21 (Lollipop 5.0) работают цветные значки. Вы можете принудительно настроить приложение на целевой API 20, но это ограничивает возможности, доступные для вашего приложения, поэтому это не рекомендуется. Можно проверить уровень API и установить значок цвет или значок оттенков серого соответственно, но это, вероятно, не стоит. В большинстве случаев лучше всего использовать значок оттенков серого.

изображения имеют четыре канала, RGBA (красный / зеленый / синий / Альфа). Для значков уведомлений Android игнорирует каналы R, G и B. Единственный канал, который имеет значение-альфа, также известный как непрозрачность. Создайте свой значок с помощью редактора, который дает вам контроль над Альфа-значением ваших цветов рисунка.

как Альфа-значения генерируют оттенки серого изображение:

  • Альфа = 0 (прозрачный) — эти пиксели прозрачны, показывая цвет фона.
  • Альфа = 255 (непрозрачный) — эти пиксели белые.
  • альфа = 1 . 254-эти пиксели именно то, что вы ожидаете, обеспечивая оттенки между прозрачным и белым.

изменение его с setColor :

вызов NotificationCompat.Builder.setColor(int argb) . Из документации Notification.color :

цвет акцента (целое число ARGB, такое как константы в цвете), которое будет применяться стандартными шаблонами стилей при представлении этого уведомления. Текущий дизайн шаблона создает красочное изображение заголовка, накладывая изображение значка (трафарет белого цвета) поверх поля этого цвета. Альфа-компоненты игнорируются.

мое тестирование с setColor показывает, что Альфа-компоненты не игнорируется. Более высокие альфа-значения превращают пиксель белый. Более низкие Альфа-значения превращают пиксель в цвет фона (черный на моем устройстве) в области уведомлений или в указанный цвет в раскрывающемся уведомлении.

Источник

Оцените статью