-
Bundled Notification 은 Android Wear 의 Stacking Notification 과 비슷한 맥락이다.
Notification 이 하나의 Title 밑에 List 형태로 붙어서 나온다.
그리고 이 녀석을 클릭하면, Notification 이 확장되서 개개별 Notification 으로 나뉘어 나온다.
-
Bundled Notification 은 Nougat 부터 사용 가능하다.
Nougat 이전 버전에서는 아래와 같이 나온다.
-
Bundled Notification 의 핵심은 “Group” 이라는 녀석과 “GroupSummary” 이란 녀석이다.
private Notification buildNotification(Message message, String groupKey){
return new NotificationCompat.Builder(context)
.setContentTitle(message.sender())
.setContentText(message.message())
.setWhen(message.timestamp())
.setSmallIcon(R.drawable.ic_message)
.setShowWhen(true)
.setGroup(groupKey) // API 20 이상
.build();
}
private Notification buildSummary(Message message, String groupkey){
return new NotificationCompat.Builder(context)
.setContentTitle(“Nougat Messenger”)
.setContentText(“You have unread messages”)
.setWhen(message.timestap())
.setSmallIcon(R.drawable.ic_message)
.setShowWhen(true)
.setGroup(groupKey)
.setGroupSummary(true) // summary noti 로 만드는 핵심, API 20 이상
.build();
}
private void sendBundledNotification(Message message){
Notification notification = buildNotification(message, GROUP_KEY);
notificationManager.notify(getNewNotificationId(), notification);
Notification summary = buildSummary(message, GROUP_KEY);
notificationManager.notify(SUMMARY_ID, summary);
}
groupKey 를 통해 묶여있는 녀석들은 하나의 Notification 형태로 나타난다.
이 때, Summary 로 나타나있는 녀석이 제공되어야만 Bundle 이 되고,
Compat 으로 지원되지 않는 버전에서는 Summary Notification 이 대표로 보이게 된다.
각 bundle 되어야 하는 message 들은 매번 새로운 Noti ID 를 가져도 되지만,
Summary Noti 는 같은 Noti ID 를 가져야 한다.
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[android] Visual Voicemail (0) | 2018.03.04 |
---|---|
[android] ConstraintLayout Tutorial (0) | 2018.03.03 |
[android] Messaging Style Notification Tutorial (0) | 2018.03.01 |
[android] Direct Reply Tutorial (0) | 2018.02.28 |
[android] App Shortcuts Tutorial (0) | 2018.02.25 |
댓글