Notification7.0取消自动分组

Android7.0系统对通知栏进行了升级,在同一个应用程序下,如果超过4条通知,会自动把通知进行分组。


Notification7.0取消自动分组_第1张图片
211515034801_.pic.jpg

Notification7.0取消自动分组_第2张图片
201515034801_.pic.jpg

那我们可以把分组分成两部分组头和组员:
组头是 开心就好^,组员就是某一条的通知。
点击下拉列表显示出全部组员信息。点击某一条组员根据ContentIntent进行跳转。
但是在这里又一个问题,就是点击组头的时候,无法控制他的跳转。
这就导致测试人员给我提bug了。
那有问题了就该去解决啊。
怎么解决呢

  1. 取消分组
    设置这两个方法,就会取消分组每个组员都单个显示:
setGroupSummary(false)
setGroup("group")

完整代码


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

        NotificationCompat.Builder builder = new NotificationCompat.Builder(this);

        builder.setContentTitle("标题")
                .setSmallIcon(R.mipmap.ic_launcher)//图标必须设置,如果不设置会报错
                .setContentText("内容")
                .setAutoCancel(true)
                .setTicker("动画")
                .setWhen(timeMillis)
                .setGroupSummary(false)
                .setGroup("group")
                .setContentIntent(getContentIntent(timeMillis))
                //等价于setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_LIGHTS | Notification.DEFAULT_VIBRATE);
                //.setDefaults(Notification.DEFAULT_ALL)
                //.setSound(Uri.parse("file:///sdcard/dance.mp3"))
                //.setLights(0xff00eeff, 500, 200)
                .setVibrate(new long[]{0, 300, 500, 700})//实现效果:延迟0ms,然后振动300ms,在延迟500ms,接着在振动700ms。
                .setNumber(4);

        Notification build = builder.build();

        //设置三色灯提醒
//        build.flags = Notification.FLAG_SHOW_LIGHTS;
//        build.ledARGB = 0xff00eeff;
//        build.ledOnMS = 500;
//        build.ledOffMS = 200;
        nm.notify(timeMillis, build);

那这么设置会是什么样的效果呢?


Notification7.0取消自动分组_第3张图片
221515036977_.pic.jpg
  1. 自己设置分组,但是有问题,所以项目中没有使用,就是点击组头没有反应。哪位大神如果知道怎么做请给我留言。
int timeMillis = (int) System.currentTimeMillis();
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            final NotificationCompat.Builder builder2 = new NotificationCompat.Builder(this)
                    .setSmallIcon(R.mipmap.ic_launcher)
                    .setStyle(new NotificationCompat.BigTextStyle())
                    .setGroup(NOTIFICATION_GROUP)
                    .setAutoCancel(true)
                    .setGroupSummary(true);
            final Notification notification = builder2.build();
            nm.notify(1, notification);
        }

        NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
        builder = builder.setSmallIcon(R.mipmap.ic_launcher)
                .setContentTitle("大大标题")
                .setContentText("小小内容")
                .setGroup(NOTIFICATION_GROUP)
                .setAutoCancel(true)
                .setGroupSummary(false)
                //.setGroup("group")
                .setContentIntent(getContentIntent(timeMillis));
        nm.notify(timeMillis, builder.build());

在我的项目中,只有android7.0版本以下都是正常的,所以我对版本进行了控制。


Notification7.0取消自动分组_第4张图片
241515038547_.pic.jpg
Notification7.0取消自动分组_第5张图片
231515038546_.pic.jpg

还是点击下拉出现组员条目信息。
但是有个问题,就是点击组头没反应。
我想自己控制逻辑。。。。。

你可能感兴趣的:(Notification7.0取消自动分组)