Kann ich das Standard-Push-Benachrichtigungssymbol in Android vom App-Symbol zum benutzerdefinierten Symbol überschreiben?
Ich verwende eine standardmäßige Firebase-Implementierung, um eine Benachrichtigung in der Taskleiste anzuzeigen, wenn eine Push-Benachrichtigung erscheint. Da mein App-Symbol farbig ist und einen Farbverlauf aufweist, hat Android bei einer Benachrichtigung versucht, eine schwarz/weiße Version davon zu erstellen und sie wie einen weißen Kreis aussehen zu lassen.
Gibt es eine Möglichkeit, das Standard-Benachrichtigungssymbol anstelle des Standard-App-Symbols auf ein anderes zu aktualisieren?
PS: Ich freue mich auf eine Lösung, die eine Konfigurationsänderung im Manifest erfordert und NotificationCompat.Builder nicht verwenden möchte
sie können dies in Ihrem Manifest gemäß https://firebase.google.com/docs/cloud-messaging/Android/receive verwenden.
<!-- 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" />
Hoffe, es hilft den Menschen.
Sie können einstellen
.setSmallIcon(int);
.setLargeIcon(bitmap);
Ein kleines Symbol, gesetzt von setSmallIcon ()
NotificationCompat.Builder setLargeIcon (Bitmap icon)
Legen Sie das große Symbol fest, das im Ticker und in der Benachrichtigung angezeigt wird.
in NotificationCompat.Builder.
Dokumentation - https://developer.Android.com/reference/Android/support/v4/app/NotificationCompat.Builder.html
Builder
-Klasse für Notification
-Objekte. Bietet eine bequeme Methode zum Festlegen der verschiedenen Felder einer Benachrichtigung und zum Generieren von Inhaltsansichten mithilfe der Benachrichtigungslayoutvorlage der Plattform. Offizielle Dokumentation überprüfen hier
Notification noti = new Notification.Builder(mContext)
.setContentTitle("New mail from " + sender.toString())
.setContentText(subject)
.setSmallIcon(R.drawable.new_mail)
.setLargeIcon(aBitmap)
.build();
Hier können Sie benutzerdefinierte Felder einschließlich Symbol für Ihre Benachrichtigungen festlegen.
Prost! Glückliche Kodierung
Ja, Sie können es tun. Wenn Sie ein weißes Kreissymbol vermeiden möchten, müssen Sie Ihr -Symbol transparent machen und Hintergrundfarbe hinzufügen. So erscheint die von Ihnen verwendete Farbe durch das transparente Symbol und macht das Symbol sichtbar und bunt. Bitte überprüfen Sie im folgenden Beispielcode nach setSmallIcon und setColor. Überprüfen Sie dieses Dokument und suchen Sie nach 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);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.mipmap.custom_icon)
.setContentTitle("FCM Message")
.setContentText(messageBody)
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setContentIntent(pendingIntent);
Das kannst du so machen:
int icon=R.drwable.icon; //Add your icon name here
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setSmallIcon(icon);