Значок уведомления Android не отображается и всегда имеет квадратную форму - PullRequest
0 голосов
/ 26 апреля 2018

В моем приложении есть два типа уведомлений. У меня есть сервис foreground, который заполняет панель уведомлений, когда геолокация приложения включена и отправка в API.

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

Служба foreground, похоже, использует значок запуска моего приложения, независимо от того, что я делаю, а уведомление FCM использует значок уведомления по умолчанию для Android (маленький логотип Android в круге).

Однако они оба окрашены с помощью API, чтобы изменить акцент на них.

В обеих ситуациях я пытаюсь использовать drawable/ic_stat_home, где ic_stat_home - изображение с прозрачным фоном и альфа / белым значком дома (сгенерировано из https://romannurik.github.io/AndroidAssetStudio/ и извлечено в папка)

Вот мой манифест (который относится только к части вопроса FCM)

<meta-data
    android:name="com.google.firebase.messaging.default_notification_icon"
    android:resource="@drawable/ic_stat_home" />
<meta-data
    android:name="com.google.firebase.messaging.default_notification_color"
    android:resource="@color/colorAccent" />

Что-то не так с моей иконкой или моей реализацией? Редактировать: FirebaseMessaging: Icon with id: 2130903040 uses an invalid gradient. Using fallback icon. Это ошибка, которую я вижу в Logcat. Однако, когда я открываю изображение, оно полностью белое с прозрачностью, чего мне не хватает?

1 Ответ

0 голосов
/ 10 июня 2019

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

например: -
Gmail Icon Gmail Notification
изображение не имеет ничего в середине круга, только форма круга ... это называется прозрачный фон
но его можно изменить с помощью метода .setColor(), как показано в приведенном ниже коде.

Вот код для установки цвета значка уведомления: -

if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    notificationBuilder.setSmallIcon(R.drawable.appypie_small);
    notificationBuilder.setColor(getResources().getColor(R.color.notification_color));
} 
else {
    notificationBuilder.setSmallIcon(R.drawable.appypie_small);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...