Значок уведомления не отображается должным образом - PullRequest
0 голосов
/ 07 мая 2018

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

Status bar

Мой MessageService выглядит так:

public class MyMessagingService extends FirebaseMessagingService {

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
    Intent intent = new Intent(this, MessageActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    intent.putExtra("notification_msg_id", remoteMessage.getData().get("my_msg_id"));

    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT);

    NotificationCompat.Builder notificationBuilder
            = new NotificationCompat.Builder(this)
     .setContentTitle(remoteMessage.getNotification().getTitle())
     .setContentText(remoteMessage.getNotification().getBody())
     .setAutoCancel(true)
     .setSmallIcon(R.drawable.ic_stat_my_logo)
     .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher))
     .setColor(getResources().getColor(R.color.colorBlack))
     .setContentIntent(pendingIntent);

    NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

    notificationManager.notify(0, notificationBuilder.build());
}

}

Я создал маленький значок с помощью этого (довольно замечательного) инструмента, и, как вы можете видеть, Android Studio может найти изображение любого необходимого размера:

enter image description here

Вот мои версии SDK:

used sdk versions

Ранее я читал, что могут быть некоторые проблемы с кэшированием рисованных объектов, я пытался сделать недействительным каждый кеш, а также очистил / собрал проект. Я также пробовал разные файлы изображений, а также векторные XML-файлы.

Ребята, вы понимаете, что я делаю неправильно или как я могу устранить проблему дальше?

Заранее спасибо!

Edit:

Это значок, который я пытаюсь использовать в формате xxxhdpi-v11 (он белый, вам, вероятно, нужно щелкнуть по нему, чтобы увидеть его):

enter image description here

Ответы [ 2 ]

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

Значки уведомлений должны быть полностью белыми для API 21 и более поздних версий. попробуйте использовать это:

notification.setColor(getResources().getColor(R.color.notification_color));
0 голосов
/ 07 мая 2018

Вы получаете одно и то же имя логотипа в каждой папке, может быть, нужное для уведомления отличается, так как значок уведомления должен быть 24x24 dp

...