8

Kann ich das Standard-Push-Benachrichtigungssymbol in Android vom App-Symbol auf das benutzerdefinierte Symbol überschreiben?Kann ich das Standard-Push-Benachrichtigungssymbol in Android vom App-Symbol auf das benutzerdefinierte Symbol überschreiben?

Ich verwende Standard-Firebase-Implementierung, um Benachrichtigungen in der Taskleiste anzuzeigen, wenn eine Push-Benachrichtigung kommt. Da mein App-Icon farbig ist und einen Gradienten aufweist, versucht Android bei einer Benachrichtigung eine schwarz/weiße Version davon zu erstellen und es wie einen weißen Kreis aussehen zu lassen.

Gibt es eine Möglichkeit, das Standardbenachrichtigungssymbol auf etwas anderes anstelle des Standard-App-Symbols zu aktualisieren?

PS: Wir freuen uns für eine Lösung, die eine Konfigurationsänderung manifestieren erforderlich und nicht wollen, können NotificationCompat.Builder

+0

Sie können 'id' zu' setSmallIcon' Methode von 'NotificationCompat.Builder' geben. – Dhruv

Antwort

0
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) 
       .setSmallIcon(R.mipmap.custom_icon) 
       .setContentTitle("FCM Message") 
       .setContentText(messageBody) 
       .setAutoCancel(true) 
       .setSound(defaultSoundUri) 
       .setContentIntent(pendingIntent); 
0

Sie mögen dies tun können:

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

Gibt es eine Möglichkeit, es ohne Notification.Builder zu machen. Wie das Standard-Icon wird aus dem Manifest übernommen, was dem App-Icon entspricht. Kann es auf Config-Ebene gemacht werden, so dass es für alle Benachrichtigungen gilt. – Shashank

+0

Möchten Sie eine benutzerdefinierte Benachrichtigung generieren? – Dhruv

+0

Er verwendet standardmäßige Firebase-Benachrichtigungen, sodass er keinen Zugriff auf den Notification Builder hat. – EdgarK

0

Builder Klasse für Notification Objekte. Bietet eine bequeme Möglichkeit, die verschiedenen Felder einer Benachrichtigung festzulegen und Inhaltsansichten mithilfe der Benachrichtigungslayoutvorlage der Plattform zu generieren. Überprüfen Sie Offizielle Dokumentation here

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! Happy Coding

0

Ja, Sie können es tun.Wenn Sie weißen Kreis Symbol vermeiden möchten, müssen Sie Ihre Symbol transparent machen und Hintergrundfarbe hinzufügen .So die Farbe, die Sie verwenden, erscheint durch das transparente Symbol und macht das Symbol sichtbar und bunt. überprüfen Sie bitte im folgenden Beispielcode für setSmallIcon und setColor. Check this doc and search for 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); 
16

können Sie dies in Ihrem Manifest verwenden nach 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" /> 

Hoffe, dass es Menschen hilft.

+0

Diese Information ist unvollständig den Link, den Sie auch gepostet haben. –

+0

@ BecarioSenior ??? Ich bekomme damit keinen Fehler. Bitte beachten Sie die Firebase-Dokumentation. – elsennov

+2

Überrascht, wie viel ich googeln musste, um das zu finden. Danke für die Hilfe und Referenz –

Verwandte Themen