8

Posso ignorare l'icona di notifica push predefinita in Android dall'icona della app all'icona personalizzata?Posso ignorare l'icona di notifica push predefinita in Android dall'icona della app all'icona personalizzata?

Sto utilizzando l'implementazione predefinita di Firebase per visualizzare la notifica nella barra delle applicazioni, quando arriva una notifica push. Poiché l'icona della mia app è colorata e presenta una sfumatura, così quando arriva una notifica, Android prova a creare una versione in bianco e nero e la fa apparire come un cerchio bianco.

C'è un modo per aggiornare l'icona di notifica predefinita a qualcos'altro invece di un'icona di app predefinita?

PS: In attesa di una soluzione che ha richiesto un cambiamento di configurazione nel manifesto e non vogliono usare NotificationCompat.Builder

+0

Puoi dare 'id' al metodo' setSmallIcon' di 'NotificationCompat.Builder'. – Dhruv

risposta

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

Si può fare in questo modo:

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

C'è un modo che può essere fatto senza Notification.Builder. Come l'icona predefinita viene prelevata da manifest che è uguale all'icona dell'app. Può essere fatto a livello di configurazione in modo che venga applicato per tutte le notifiche. – Shashank

+0

Vuoi generare una notifica personalizzata? – Dhruv

+0

Sta usando le notifiche predefinite di Firebase, quindi non ha accesso a Notification Builder. – EdgarK

0

Builder classe per Notification oggetti. Fornisce un modo conveniente per impostare i vari campi di una notifica e generare visualizzazioni di contenuto utilizzando il modello di layout di notifica della piattaforma. Controllare Documentazione ufficiale here

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

Qui è possibile impostare i campi personalizzati tra cui Icona per le notifiche.

Cheers! Felice di codifica

0

Sì, è possibile fare it.If si vuole evitare Icona del cerchio bianco è necessario effettuare la icona trasparente e aggiungere il colore di sfondo ad esso .Così il colore più usato appare attraverso l'icona trasparente e rende l'icona visibile e colorato. si prega di controllare setSmallIcon e setColor nel codice di esempio sottostante. 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

è possibile utilizzare questo nel vostro manifesto in base alle 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" /> 

Speranza che aiuta le persone.

+0

Questa informazione è incompleta sul link che hai postato. –

+0

@BecarioSenior ??? Non ho alcun errore con questo. Si prega di fare riferimento alla documentazione di Firebase. – elsennov

+2

Sorpreso da quanto dovevo google per trovarlo. Grazie per l'aiuto e il riferimento –