Как получить цвет уведомления для Android?

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

введите описание изображения здесь

Однако после Lollipop ОС автоматически устанавливает белый цветной фильтр для маленьких значков и всякий раз, когда я пытаюсь получить их для отображения из моего NotificationListenerServiceони возвращены в белом. Можно ли каким-то образом извлечь цвет фона для маленьких значков или получить маленький значок непосредственно в виде цветных рисунков, как есть? Ниже мой код, который возвращает только белые значки.

public void onNotificationPosted(StatusBarNotification sbn) {
    super.onNotificationPosted(sbn);

    Bundle extras = sbn.getNotification().extras;
    int smallNotiIcon = extras.getInt(Notification.EXTRA_SMALL_ICON);

    //Code to display obtained small icon in an imageView shows up as white
}

1 ответ

Решение

Цвет можно получить из уведомления через открытое поле цвета:

Notification notification = sbn.getNotification();
// ARGB color set with the notification
int color = notification.color;

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

Другие вопросы по тегам