Как получить цвет уведомления для 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
}

person Kyle    schedule 11.01.2016    source источник


Ответы (1)


Цвет можно получить из уведомления через общедоступное поле color. :

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

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

person ianhanniballake    schedule 11.01.2016
comment
Я не уверен, почему я не видел этого в документах раньше. Большое спасибо, что нашли время, чтобы ответить на этот вопрос. То, что вы упомянули, работало отлично. - person Kyle; 12.01.2016