[TIL] #35 Notification

Yeon·2023년 9월 8일
0

내일배움캠프 - Kotlin

목록 보기
46/58
post-thumbnail

1. Notification?

  • 앱의 UI와 별도로 사용자에게 앱과 관련한 정보를 보여주는 기능
  • 알림을 터치하여 해당 앱을 열 수 있음
    • 바로 간단한 작업(ex. 문자 답하기)을 할 수 있음 (Android 7.0부터)
  • 보통 단말기 상단 부분에 표시되고, 앱 아이콘의 배지로도 표시 (Android 8.0부터)

2. Notification Channel (Android 8.0 and later)

  • Android 8.0이상의 경우는 알림을 만들기 전에 알림 채널을 먼저 만들어야 함
  • 알림 채널은 알림을 그룹하여 알림 활성화나 방식을 변경 할 수 있음
  • 현재 앱이 실행 중인 안드로이드 버전을 확인하여 8.0 이상인 경우만 채널 생성
private val NotifyID = 1
private val channelID = "default"

private fun createNotificationChannel() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { // Android 8.0
        val channel = NotificationChannel(channelID, "default channel",
            NotificationManager.IMPORTANCE_DEFAULT)
        channel.description = "description text of this channel."
        val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
        notificationManager.createNotificationChannel(channel)
    }
}

3. Create Notifications

1) NotificationCompat.Builder 객체에서 알림에 대한 UI정보와 작업 지정

  • setSmallIcon() : 작은 아이콘
  • setContentTitle() : 제목
  • setContentText() : 세부텍스

2) NotificationCompat.Builder.build()호출

  • Notification 객체를 반환

3) NotificationManagerCompat.notify()를 호출해서 시스템에 Notification객체 전달

private val NotifyID = 1

private fun showNotification() {
    val builder = NotificationCompat.Builder(this, channelID)
        .setSmallIcon(R.mipmap.ic_launcher)
        .setContentTitle("title")
        .setContentText("notification text")
        .setPriority(NotificationCompat.PRIORITY_DEFAULT)
    NotificationManagerCompat.from(this).notify(NotifyID, builder.build())
}

4. Notification Importance

1) 채널 중요도 (Android 8.0이상)

  • NotificationChannel
    • channelID, "defaultchannel", NotificationManager.IMPORTANCE_DEFAULT

2) 알림 우선순위 (Android 7.1이하)

  • NotificationCompat.Builder(this,channelID).setPriority(NotificationCompat.PRIORITY_DEFAULT)

3) 중요도 순위

(채널 / 알림 / 중요도 / 우선순위 수준)

중요도설명중요도 (Android 8.0 이상)우선순위 (Android 7.1 이하)
긴급알림음이 울림, 헤드업 알림 표시IMPORTANCE_HIGHPRIORITY_HIGH
높음알림음이 울림IMPORTANCE_DEFAULTPRIORITY_DEFAULT
중간알림음 XIMPORTANCE_LOWPRIORITY_LOW
낮음알림음 X, 상태 표시줄 표시 XIMPORTANCE_MINPRIORITY_MIN

[참고 사이트]

'Create a Notification', developers

0개의 댓글