Android 8.0(API 수준 26)부터 연결된 앱에 활성 알림이 있는 경우 런처 아이콘에 알림 배지(알림 표시 점이라고도 함)가 표시됩니다. 사용자는 그림 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()
를 호출하여 알림이 활성 상태인 동안 바로가기를 일시적으로 숨길 수 있습니다.
알림을 사용하는 더 많은 샘플 코드는 사용자 샘플을 참고하세요.