2017-01-12 8 views
0

Я знаю, что из Lollipop есть некоторые изменения уровня дизайна для значка уведомления, поэтому значок уведомления белый над выпуском леденца.Значок Push-уведомления белый над Lollipop

Но есть требование, чтобы я показывал точный значок приложения для уведомления, возможно ли это или нет?

Есть приложения, которые показывают значок приложения в уведомлении, на леденец и выше платформы.

+0

Они могут использовать 'setContent (contentView)' метод для того, чтобы достичь этого, смотрите здесь для подробностей: http://stackoverflow.com/questions/18367631/change-notification-layout –

ответ

2

вы можете установить белый значок выше lolipop, используя этот метод.

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) 
    { 
     Bitmap icon = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_launcher); 
     mBuliderREC.setLargeIcon(icon); 
     mBuliderREC.setSmallIcon(R.drawable.notification_icon); 
    } else { 
       mBuliderREC.setSmallIcon(R.drawable.ic_launcher); 
     } 
+0

Могу ли я узнать, что означает setlargeIcon и setSmallicon в случае вышеописанной Lollipop OS. –

+0

в setlargeIcon вы можете установить значок обычного приложения, а в значке setmall вам нужно сделать новое изображение для того, у которого есть белый фон, чтобы вы могли видеть, когда уведомление cme в противном случае вы можете получить белое изображение –

+0

, если вы получите идею, тогда примите ответ. Благодарю. –

0

Такая же проблема, я столкнулся в одном из моих проектов, но я решил с помощью кода ниже. Пожалуйста, проверьте Это может помочь вам

private void sendNotification(String message) { 
     int NOTIFICATION_ID = (int) Calendar.getInstance().getTimeInMillis(); 
     NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) 
       .setSmallIcon(R.drawable.loading_icon) 
       .setContentTitle(getString(R.string.app_name)) 
       .setDefaults(Notification.DEFAULT_LIGHTS | Notification.DEFAULT_VIBRATE | Notification.DEFAULT_SOUND) 
       .setContentText(message); 
     mBuilder.setStyle(new NotificationCompat.BigTextStyle().bigText(message)); 
     Intent resultIntent = new Intent(this, HomeActivity.class); 
     TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); 
     stackBuilder.addNextIntent(resultIntent); 
     PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); 
     mBuilder.setContentIntent(resultPendingIntent); 
     mBuilder.setAutoCancel(true); 
     NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
     mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build()); 
    } 
+0

Пожалуйста, объясните, как ответ помогает сделать значок уведомления ** не ** отображаться как белый. –

+0

На самом деле, я использую цветовой код (относящийся к цвету приложения), чтобы заполнить круг и разместить значок приложения в центре (это будет автоматически в центре). Попробуйте код выше Он будет работать. – samsad

0

Вы можете показать любое изображение в уведомлении путем добавления параметра «образ» во время передачи параметра.

Использование ТСМ с изображения папки активов:

{"to":"[add your token]","notification":{"title":"[add title]","body":"[add your message]","image":"www/images/test_image.png"},"priority":"high"} 

Использование ТСМ с изображением в вытяжке папке:

{"to":"[add your token]","notification":{"title":"[add title]","body":"[add your message]","image":"ic_icon"},"priority":"high"} 

Использование ТСМ с изображением от внешней ссылке:

{"to":"[add your token]","notification":{"title":"[add title]","body":"[add your message]","image":"http://www.test.com/test_img.png"},"priority":"high"} 

Использование GCM с изображением в папке активов:

{"registration_ids": ["[please dont change]" ],"data": {"tickerText":"example test GCM","contentTitle":"content title GCM","message": "Enter your message","title":"GILAC","image":"www/images/test_img.png"}} 

Использование GCM с изображением в вытяжке папке:

{"registration_ids": ["[please dont change]" ],"data": {"tickerText":"example test GCM","contentTitle":"content title GCM","message": "Enter your message","title":"GILAC","image":"ic_icon"}} 

Использование GCM с изображением от внешней ссылке:

{"registration_ids": ["[please dont change]" ],"data": {"tickerText":"example test GCM","contentTitle":"content title GCM","message": "Enter your message","title":"GILAC","image":"http://www.test.com/test_img.png"}} 

Примечание: Значок/изображение уведомлений должно быть png-изображением.

+0

На самом деле проблема заключается в том, что я не могу обработать метод onMessageReceived() оповещения FCM push, когда приложение находится в фоновом режиме. поэтому без вызова этого метода. Кажется невозможным установить значок уведомления, как вам было предложено. –