알림 배지 수정

Android 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)

Java

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과 같이 각 알림은 기본적으로 길게 터치 메뉴에 표시되는 숫자를 증가시키지만, 앱에서 이 숫자를 재정의할 수 있습니다. 예를 들어 하나의 알림만 사용하여 여러 개의 새 메시지를 표시하지만 이 개수가 새 메시지의 총 개수를 나타내는 경우 유용할 수 있습니다.

맞춤 번호를 설정하려면 다음과 같이 알림에서 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()

Java

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()

Java

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()를 호출하여 알림이 활성 상태인 동안 바로가기를 일시적으로 숨길 수 있습니다.

알림을 사용하는 더 많은 샘플 코드는 사용자 샘플을 참고하세요.