The Android Developer Challenge is back! Submit your idea before December 2.

알림 배지 수정

8.0(API 레벨 26)부터 연결된 앱에 활성 알림이 있는 경우 런처 아이콘에 알림 배지(알림 표시 점이라고도 함)가 표시됩니다. 사용자는 그림 1과 같이 앱 아이콘을 길게 눌러 앱 바로가기와 함께 알림을 표시할 수 있습니다.

표시 점을 지원하는 런처 앱에는 이 표시 점이 기본적으로 표시되며 앱에서 아무 작업도 실행할 필요가 없습니다. 하지만 알림 표시 점을 표시하고 싶지 않거나 런처 앱에 표시되는 알림을 정확히 관리하고 싶은 경우도 있습니다.

그림 1. 알림 배지 및 길게 누르기 메뉴

배지 사용 중지

알림에서 배지가 무의미한 경우가 있으므로 NotificationChannel 개체에서 setShowBadge(false)를 호출하여 채널별로 배지를 사용 중지할 수 있습니다.

예를 들어 다음과 같은 경우 알림 배지를 사용 중지할 수 있습니다.

  • 지속적인 알림: 이미지 처리, 미디어 재생 컨트롤, 현재 탐색 안내 등 대부분의 지속적인 알림에서는 배지가 무의미합니다.
  • 캘린더 알림: 현재 발생한 이벤트에는 배지를 사용하지 마세요.
  • 시계 또는 경보 이벤트: 현재 경보와 관련된 알림에는 배지를 사용하지 마세요.

다음 샘플 코드는 알림 채널의 배지를 숨기는 방법을 보여줍니다.

Kotlin

    val id = "my_channel_01"
    val name = getString(R.string.channel_name)
    val descriptionText = getString(R.string.channel_description)
    val importance = NotificationManager.IMPORTANCE_LOW
    val mChannel = NotificationChannel(id, name, importance).apply {
        description = descriptionText
        setShowBadge(false)
    }
    val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
    notificationManager.createNotificationChannel(mChannel)
    

자바

    String id = "my_channel_01";
    CharSequence name = getString(R.string.channel_name);
    String description = getString(R.string.channel_description);
    int importance = NotificationManager.IMPORTANCE_LOW;
    NotificationChannel mChannel = new NotificationChannel(id, name, importance);
    mChannel.setDescription(description);
    mChannel.setShowBadge(false);

    NotificationManager notificationManager =
            (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    notificationManager.createNotificationChannel(mChannel);
    

맞춤 알림 수 설정

기본적으로 알림이 발생하면 길게 누르기 메뉴에 표시되는 숫자가 1 증가하지만(그림 1에 표시됨) 앱에서 이 숫자를 재정의할 수 있습니다. 예를 들어 하나의 알림을 사용하여 여러 개의 새 메시지를 나타내지만 이 숫자로 새 메시지의 총 수를 나타내고 싶은 경우 숫자를 재정의하면 유용합니다.

맞춤 숫자를 설정하려면 여기 표시된 대로 알림에서 setNumber()를 호출하세요.

Kotlin

    var notification = NotificationCompat.Builder(this@MainActivity, CHANNEL_ID)
            .setContentTitle("New Messages")
            .setContentText("You've received 3 new messages.")
            .setSmallIcon(R.drawable.ic_notify_status)
            .setNumber(messageCount)
            .build()
    

자바

    Notification notification = new NotificationCompat.Builder(MainActivity.this, CHANNEL_ID)
            .setContentTitle("New Messages")
            .setContentText("You've received 3 new messages.")
            .setSmallIcon(R.drawable.ic_notify_status)
            .setNumber(messageCount)
            .build();
    

알림의 길게 누르기 메뉴 아이콘 수정

길게 누르기 메뉴에는 알림과 관련된 큰 아이콘 또는 작은 아이콘이 표시됩니다(해당하는 경우). 기본적으로 시스템에서 큰 아이콘을 표시하지만 Notification.Builder.setBadgeIconType()를 호출하고 BADGE_ICON_SMALL 상수를 전달하여 작은 아이콘을 표시할 수 있습니다.

Kotlin

    var notification = NotificationCompat.Builder(this@MainActivity, CHANNEL_ID)
            .setContentTitle("New Messages")
            .setContentText("You've received 3 new messages.")
            .setSmallIcon(R.drawable.ic_notify_status)
            .setBadgeIconType(NotificationCompat.BADGE_ICON_SMALL)
            .build()
    

자바

    Notification notification = new NotificationCompat.Builder(MainActivity.this, CHANNEL_ID)
            .setContentTitle("New Messages")
            .setContentText("You've received 3 new messages.")
            .setSmallIcon(R.drawable.ic_notify_status)
            .setBadgeIconType(NotificationCompat.BADGE_ICON_SMALL)
            .build();
    

중복 바로가기 숨기기

앱에서 앱 바로가기를 복제하는 알림을 만드는 경우 setShortcutId()를 호출하여 알림이 활성화된 동안 바로가기를 일시적으로 숨길 수 있습니다.

알림을 사용하는 추가 샘플 코드는 Android 알림 샘플을 참조하세요.