Заголовок содержимого уведомления и текст содержимого не отображаются - PullRequest
0 голосов
/ 07 июня 2018

Я генерирую локальное уведомление с несколькими строками.Все строки отображаются правильно, но contentTitle и contentText не отображаются.

Вот мой код для генерации уведомления:

Intent notificationIntent = new Intent(context, MainActivity.class);

notificationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
        Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);

TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
stackBuilder.addParentStack(MainActivity.class);
stackBuilder.addNextIntent(notificationIntent);


int num = (int) System.currentTimeMillis();

PendingIntent pendingIntent = stackBuilder.getPendingIntent(num, PendingIntent.FLAG_UPDATE_CURRENT);

String id = "notification_channel_id";
CharSequence name = "Message_Notification";
Bitmap bm = BitmapFactory.decodeResource(context.getResources(), R.mipmap.ic_launcher);

NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context, id)
        .setSmallIcon(R.mipmap.ic_launcher)
        .setContentTitle("title")
        .setContentText("time")
        .setAutoCancel(true)
        .setGroupSummary(true)
        .setGroup(GROUP_KEY)
        .setContentIntent(pendingIntent)
        .setChannelId(id);

if (subTitle != null) {
    NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle();

    inboxStyle.setBigContentTitle("Dose Reminder");

 if (subTitle.contains("---")) {

        String[] splitStrings = subTitle.split("---");

        for (int i = 0; i < splitStrings.length; i++) {
            inboxStyle.addLine(splitStrings[i]);
        }
    } else {
        inboxStyle.addLine(subTitle);

        // Moves the expanded layout object into the notification object.
        notificationBuilder.setStyle(inboxStyle);

    }

    // Moves the expanded layout object into the notification object.
    notificationBuilder.setStyle(inboxStyle);
}

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    notificationBuilder.setColor(ContextCompat.getColor(context, R.color.colorAccent));
} else {
    notificationBuilder.setLargeIcon(bm);
}

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    NotificationManager notificationManager = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE);

    // The user.-visible description of the channel.
    String description = "Notifications contains messages which was sent by dev team.";
    int importance = NotificationManager.IMPORTANCE_MAX;
    NotificationChannel mChannel = new NotificationChannel(id, name, NotificationManager.IMPORTANCE_DEFAULT);
    // Configure the notification channel.
    mChannel.setDescription(description);
    mChannel.enableLights(true);
    // Sets the notification light color for notifications posted to this
    // channel, if the device supports this feature.
    mChannel.setLightColor(Color.RED);
    if (notificationManager != null) {
        notificationManager.createNotificationChannel(mChannel);
    }
}

// Sets an ID for the notification

// Gets an instance of the NotificationManager service
final NotificationManager mNotifyMgr =
        (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE);
// Builds the notification and issues it.
if (mNotifyMgr != null) {
    mNotifyMgr.notify(num, notificationBuilder.build());

}

Когда приходит уведомление, «title» и «time» не отображаются,Это показывает «Напоминание дозы» и субтитры в несколько строк.

Я что-то упустил?

1 Ответ

0 голосов
/ 07 июня 2018
setBigContentTitle(CharSequence title)

Переопределяет ContentTitle в большой форме шаблона.

https://developer.android.com/reference/android/app/Notification.InboxStyle

Проверка Использование MessagingStyle раздел

https://developer.android.com/training/notify-user/build-notification

Метка времени JFYI по умолчанию уходит в push-уведомлениях, Android 7 (Nougat) и далее

...