0

Вот как я показываю Push-уведомление пользователю.Некоторые устройства не отображают тело сообщения, отображается только заголовок

Notification notification = new Notification.Builder(getApplicationContext()) 
    .setSmallIcon(R.drawable.ic_launcher) 
    .setAutoCancel(true) 
    .setContentIntent(intent) 
    .setContentTitle("Title") 
    .setStyle(new Notification.BigTextStyle() 
    .bigText(msg)) 
    .setSound(soundUri) 
    .build(); 
notificationManager.notify(0, notification); 

Это работает отлично на Samsung s5, Samsung s7. Но на samsung Note3 он отображает только заголовок и не отображает тело сообщения. Это может происходить и в некоторых других устройствах.

Просьба направлять меня, что может быть причиной этого.

ответ

1

Попробуйте этот код

NotificationCompat.Builder mBuilder = 
      new NotificationCompat.Builder(context) 
        .setSmallIcon(R.drawable.ic_launcher) 
        .setAutoCancel(true) 
        .setContentIntent(intent) 
        .setContentTitle("Title") 
        .setStyle(new Notification.BigTextStyle() 
         .bigText(msg)) 
        .setSound(soundUri) 
        .setContentText(detail); 


    NotificationManager mNotifyMgr = 
      (NotificationManager) context.getSystemService(NOTIFICATION_SERVICE); 

    mNotifyMgr.notify(mNotificationId, mBuilder.build()); 
+1

Да, это действительно помогло. Спасибо – Kirmani88

1

Добавление .setContentText(msg) в вашей цепочке вызовов должны решить эту проблему.

Android documentation for NotificationCompat утверждает, что «если платформа не обеспечивает богатые стили уведомлений, [setStyle(Style style)] не действует». Я собираюсь сделать скачок веры и сказать, что это является причиной проблемы.

+0

ок, так мне нужно удалить bigText(), то? потому что я добавил bigText для отображения текста в нескольких строках – Kirmani88

+0

Нет: S Как я уже сказал, все, что вы делаете в 'setStyle', не будет иметь никакого влияния на некоторые устройства, я просто предполагаю, что примечание 3 является одним из этих устройств. Но в устройствах, которые предоставляют богатые стили уведомлений, 'setStyle' будет работать. Поэтому удаление или сохранение bigText() предположительно ничего не повлияет на примечание 3 –

+0

@ Kirmani88 Если он отвечает на ваш вопрос, пожалуйста, примите этот ответ, чтобы другие люди, которые рассматривают этот вопрос, знают, что он работает. –