Stacked Wear通知也显示在手机上

时间:2015-05-07 17:40:36

标签: android notifications android-notifications wear-os android-wear-notification

我有1个摘要通知和多个堆叠通知。 由于某种原因,堆叠的通知不仅显示在 Andrid Wear设备也在手机上。 根据文件 Stacking Notifications 它们只应显示在手表上。 原因是,NotificationBuilder.setGroup设置为相同的值,只有摘要具有.setSummary(true)。

详细说明: http://marcuswolschon.blogspot.de/2015/05/implementing-k9-mail-wear-support.html

代码: https://github.com/k9mail/k-9/blob/73ec00b43db81038805999f5642961ae9005d6bc/k9mail/src/main/java/com/fsck/k9/controller/MessagingController.java#L4941

1 个答案:

答案 0 :(得分:1)

NotificationManager 替换为 NotificationManagerCompat

使用 NotificationManager

private void send() {
    Notification notification1 =
            new NotificationCompat.Builder(this)
                    .setSmallIcon(R.mipmap.ic_launcher)
                    .setContentTitle("News1")
                    .setGroup("News")
                    .setContentText("Text")
                    .build();

    Notification notification2 =
            new NotificationCompat.Builder(this)
                    .setSmallIcon(R.mipmap.ic_launcher)
                    .setContentTitle("News2")
                    .setGroup("News")
                    .setContentText("Text2")
                    .build();

    NotificationManager notificationManager = (NotificationManager)
            getSystemService(NOTIFICATION_SERVICE);

    notificationManager.notify(1 , notification1);
    notificationManager.notify(2 , notification2);

    Notification Summary = new NotificationCompat.Builder(this)
            .setContentTitle("2 new News")
            .setSmallIcon(R.mipmap.ic_launcher)
            .setContentText("Text2")
            .setGroup("News")
            .setGroupSummary(true)
            .build();

    notificationManager.notify(-1 , Summary);
}

enter image description here

使用 NotificationManagerCompat

private void send() {
    Notification notification1 =
            new NotificationCompat.Builder(this)
                    .setSmallIcon(R.mipmap.ic_launcher)
                    .setContentTitle("News1")
                    .setGroup("News")
                    .setContentText("Text")
                    .build();

    Notification notification2 =
            new NotificationCompat.Builder(this)
                    .setSmallIcon(R.mipmap.ic_launcher)
                    .setContentTitle("News2")
                    .setGroup("News")
                    .setContentText("Text2")
                    .build();

    NotificationManagerCompat notificationManager =
            NotificationManagerCompat.from(this);

    notificationManager.notify(1 , notification1);
    notificationManager.notify(2 , notification2);

    Notification Summary = new NotificationCompat.Builder(this)
            .setContentTitle("2 new News")
            .setSmallIcon(R.mipmap.ic_launcher)
            .setContentText("Text2")
            .setGroup("News")
            .setGroupSummary(true)
            .build();

    notificationManager.notify(-1 , Summary);
}

enter image description here