Notification 그룹 구성

7719 단어 AndroidNotification
Android7.0(API Level 24)에서 Notification 그룹을 생성할 수 있습니다.
다음은 Notification의 그룹 제작 방법을 확인합니다.

그룹 생성


1. 그룹의 아들인 Notification을 만들 때 setGroup() 방법으로 그룹의 이름을 설정합니다.
2. 그룹의 아버지인 Notification을 만들 때 setGroup () 방법으로 그룹 이름을 설정하고 setGroupSummary () 를 통해 진짜를 전달합니다
    val CHANNEL_ID = "channel_id"
    val SUMMARY_ID = 0
    val GROUP_KEY = "group_key"

    fun createChildNotification(num :Int): Notification {
        val childNotification = NotificationCompat.Builder(this@MainActivity, CHANNEL_ID)
                .setSmallIcon(R.drawable.ic_stat_name)
                .setContentTitle("Content Title $num")
                .setContentText("Content Text $num")
                .setStyle(NotificationCompat.BigTextStyle()
                        .setBigContentTitle("BigContentTitle $num")
                        .setSummaryText("summary text $num")
                        .bigText("Big Text $num"))
                .setGroup(GROUP_KEY)
                .build()
        return childNotification;
    }

    fun addSummaryNotification() {

        val childNotification1 = createChildNotification(1)
        val childNotification = createChildNotification(2)

        val summaryNotification = NotificationCompat.Builder(this@MainActivity, CHANNEL_ID)
                .setContentTitle("Summary")
                .setSmallIcon(R.drawable.ic_stat_name)
                .setGroup(GROUP_KEY)
                .setGroupSummary(true)
                .build()

        val notificationManager = NotificationManagerCompat.from(this)

        notificationManager.notify(1, childNotification1)
        notificationManager.notify(2, childNotification)
        notificationManager.notify(SUMMARY_ID, summaryNotification)
    }

주의점

  • Notification이 하위일 때 Notification은 그룹으로 표시되지 않습니다.
  • 는 최대 8명의 아이만 표시할 수 있고, 새로운 Notification에서는 8명만 표시할 수 있다.
  • 부모의 Summary Notification과 아이의 Small Icon이 같지 않으면 부모와 아이가 모두 Small Icon을 나타낸다.
  • Android7.터미널이 0보다 작으면 서브노티픽 대신 Summary만 표시됩니다.
  • Notification 자동 그룹화


    Android7.0 이후에는 Notification의 그룹을 설정하지 않아도 자동으로 그룹화됩니다.
    API 클래스 26의 소스 코드를 확인한 후 다음 레벨에서 Notification 자동 조합 판정을 수행합니다.
    com.android.server.notification.GroupHelper
    AUTOGROUP은 자동 그룹화 조건으로 사용됩니다.AT_COUNT는 동일한 패키지 이름의 응용 프로그램이 4개 이상의 Notification을 표시하려고 하면 자동으로 그룹을 생성합니다.
    자동으로 생성된 그룹의 상위 Notification에 PendingIntent, CATEGORY가 설정됨LAUNCHER 플래그가 있는 Activity를 시작합니다.
    자동으로 그룹화할 때 Intent에 문제가 있으면 직접 그룹화할 Activity를 지정해야 합니다.
    Gmail 애플리케이션은 메일 계정별로 그룹을 나누고 Summary를 눌렀을 때의 동작은 계정의 수신함을 엽니다.

    총결산

  • Android7.0 미만 터미널에서 그룹 설정 시 부모 노드만 표시
  • 하위 디스플레이는 새 순서대로 최대 8개, 오래된 숨기기
  • Notification은 자동으로 조를 나누지만 부모를 가볍게 두드릴 때의 Intent
  • 참고 자료


    https://developer.android.com/training/notify-user/group
    https://material.io/design/platform-guidance/android-notifications.html

    좋은 웹페이지 즐겨찾기