web-dev-qa-db-fra.com

Puis-je remplacer l'icône de notification Push par défaut dans Android depuis l'icône de l'application vers l'icône personnalisée?

Puis-je remplacer l'icône de notification Push par défaut dans Android depuis l'icône de l'application vers l'icône personnalisée?

J'utilise l'implémentation Firebase par défaut pour afficher la notification dans la barre d'état système, lorsqu'une notification Push arrive. Étant donné que l'icône de mon application est colorée et en dégradé, lorsqu'une notification arrive, Android essaie d'en créer une version noir/blanc et de lui donner l'aspect d'un cercle blanc. 

Existe-t-il un moyen de mettre à jour l'icône de notification par défaut avec autre chose que l'icône de l'application par défaut?

PS: Nous attendons une solution qui nécessitait un changement de configuration dans le manifeste et ne souhaitait pas utiliser NotificationCompat.Builder.

11
Shashank

vous pouvez l'utiliser dans votre manifeste conformément à 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" />

J'espère que ça aide les gens.

22
elsennov

Vous pouvez définir 

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

Une petite icône, définie par setSmallIcon ()

NotificationCompat.Builder setLargeIcon (Bitmap icon)

Définissez la grande icône affichée dans le ticker et la notification.

dans NotificationCompat.Builder.

Documentation - https://developer.Android.com/reference/Android/support/v4/app/NotificationCompat.Builder.html

2
kalpana c

Builder classe pour les objets Notification. Fournit un moyen pratique de définir les divers champs d'une notification et de générer des vues de contenu à l'aide du modèle de présentation des notifications de la plateforme. Vérifier la documentation officielle ici

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

Ici, vous pouvez définir des champs personnalisés, y compris Icon pour vos notifications.

À votre santé! Code heureux

0
Salman Nazir

Oui, vous pouvez le faire. Si vous souhaitez éviter l'icône en cercle blanc, vous devez rendre votre icône transparente et lui ajouter une couleur d'arrière-plan. Ainsi, la couleur que vous utilisez apparaît à travers l'icône transparente et la rend visible et colorée. veuillez rechercher setSmallIcon et setColor dans l'exemple de code ci-dessous. Consultez ce document et recherchez transparent

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

Vous pouvez faire comme ça:

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