it-swarm.com.ru

Можно ли переопределить значок push-уведомления по умолчанию в Android с значка приложения на пользовательский значок?

Можно ли переопределить значок push-уведомления по умолчанию в Android с значка приложения на пользовательский значок?

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

Есть ли способ обновить значок уведомления по умолчанию на что-то другое вместо значка приложения по умолчанию?

PS: Ждем решения, которое потребовало бы изменения конфигурации в манифесте и не хотело бы использовать NotificationCompat.Builder

11
Shashank

вы можете использовать это в своем манифесте в соответствии с https://firebase.google.com/docs/cloud-messaging/Android/receive

    <!-- Set custom default icon. This is used when no icon is set for incoming notification
    messages.See README(https://github.com/firebase/quickstart-Android/tree/master/messaging#custom-default-icon) for more. -->
    <meta-data
        Android:name="com.google.firebase.messaging.default_notification_icon"
        Android:resource="@drawable/ic_stat_ic_notification" />

    <!-- Set color used with incoming notification messages.
    This is used when no color is set for the incoming notification message. See README
    (https://github.com/firebase/quickstart-Android/tree/master/messaging#custom-default-color) for more. -->
    <meta-data
        Android:name="com.google.firebase.messaging.default_notification_color"
        Android:resource="@color/colorAccent" />

Надеюсь, что это помогает людям.

22
elsennov

Вы можете установить 

  .setSmallIcon(int);
  .setLargeIcon(bitmap);

Маленькая иконка, установленная setSmallIcon ()

NotificationCompat.Builder setLargeIcon (Bitmap icon)

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

в уведомлении Compat.Builder.

Документация - https://developer.Android.com/reference/Android/support/v4/app/NotificationCompat.Builder.html

2
kalpana c

Класс Builder для объектов Notification. Предоставляет удобный способ задания различных полей уведомления и создания представлений содержимого с использованием шаблона макета уведомления платформы. Проверьте официальную документацию здесь

 Notification noti = new Notification.Builder(mContext)
     .setContentTitle("New mail from " + sender.toString())
     .setContentText(subject)
     .setSmallIcon(R.drawable.new_mail)
     .setLargeIcon(aBitmap)
     .build();

Здесь вы можете установить пользовательские поля, включая значок для ваших уведомлений.

Ура! Счастливое Кодирование

0
Salman Nazir

Да, вы можете это сделать. Если вы хотите избежать значка белого круга, вы должны сделать свой значок прозрачным и добавить к нему цвет фона. Таким образом, используемый вами цвет отображается на прозрачном значке и делает значок видимым и цветным. пожалуйста, проверьте setSmallIcon и setColor в приведенном ниже примере кода . Проверьте этот документ и найдите прозрачный

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
                context)
                .setContentIntent(contentIntent)
                .setSmallIcon(R.drawable.transaparentIcon)
                .setColor(context.getResources().getColor(R.color.notif_color))
                .setWhen(System.currentTimeMillis())
                .setContentTitle(context.getString(R.string.app_name))
                .setStyle(
                        new NotificationCompat.BigTextStyle()
                                .bigText(notificationText))
                .setContentText(notificationText)
                .setAutoCancel(true);
0
Anup Dasari
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
                .setSmallIcon(R.mipmap.custom_icon)
                .setContentTitle("FCM Message")
                .setContentText(messageBody)
                .setAutoCancel(true)
                .setSound(defaultSoundUri)
                .setContentIntent(pendingIntent);
0
Muhammad Younas

Вы можете сделать так:

int icon=R.drwable.icon; //Add your icon name here
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setSmallIcon(icon);
0
Dhruv