2015-11-25 10 views
5

Sto facendo l'applicazione è che sto ricevendo dati da Parse e trasferendo i dati alla notifica per generare e mostrarlo all'utente.Notifica Android non viene visualizzata l'icona di colore in Marshmallow

ma per qualche motivo non sono in grado di mostrare corretta icona colorata in Marshmallow

In ogni altra versione di Android il suo lavoro tutto bene, ma in Marshmallow sua raccapricciante icona bianca non reale che seleziono.

Questo è il mio codice di notifica.

Intent cIntent = new Intent(context, MainActivity.class); 
     PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, 
       cIntent, PendingIntent.FLAG_UPDATE_CURRENT); 

     NotificationCompat.Builder builder = new NotificationCompat.Builder(context) 
       .setSmallIcon(R.drawable.ic_launcher) 
       .setContentText(data) 
       .setContentTitle("Notification from Parse") 
       .setContentIntent(pendingIntent); 

     Notification notification = builder.build(); 
     NotificationManager nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 
     nm.notify(100, notification); 

Please Help me con questo, o dirmi qualsiasi altro modo per sbarazzarsi di questo problema.

risposta

19

Primo: Non da Marshmallow, l'icona di notifica ha iniziato a diventare BIANCO dalla stessa Lollipop.

Cassa http://developer.android.com/design/style/iconography.html vedrai che lo stile bianco è come le notifiche devono essere visualizzate in Android Lollipop.

In Android Lollipop, Google suggerisce inoltre di utilizzare un colore che verrà visualizzato dietro il (bianco) icona di notifica - https://developer.android.com/about/versions/android-5.0-changes.html

Secondo: Soluzione a questo è l'impostazione LargeIcon al Builder notifica

Bitmap largeIcon = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher); 

NotificationCompat.Builder builder = new NotificationCompat.Builder(context) 
       .setSmallIcon(R.drawable.ic_launcher) 
       .setLargeIcon(largeIcon) 
       .setContentText(data) 
       .setContentTitle("Notification from Parse") 
       .setContentIntent(pendingIntent); 

quindi, la vostra notifica sarà simile a questo:

setLargeIcon

È inoltre possibile impostare il colore sullo sfondo dell'icona di notifica utilizzando .setColor().

+0

Sei fantastico Funzionando –

+0

Ma c'è anche la piccola icona in basso a destra c'è comunque per rimuovere quella –

+2

No, non puoi perché effettivamente quell'icona verrà visualizzata nella tua Notifica quando il tuo telefono è bloccato e appare Notifica. –

Problemi correlati