문제상황

안드로이드 7.1이하에서는 알림이 status bar에만 표시되고, head up (pop up) 알림은 안나오는 상황이였다.

원인

AOS 7.1 (SDK25) 이하에서 알림의 중요도는 알림의 priority에 따라 결정된다.

8.0 부터는 channel의 important에 따라 결정된다. 

Priority는 다음 4 종류가 있다.

  • 긴급: 알림음이 울리며 헤드업 알림으로 표시됩니다.
  • 높음: 알림음이 울립니다.
  • 중간: 알림음이 없습니다.
  • 낮음: 알림음이 없고 상태 표시줄에 표시되지 않습니다.

해결

AOS 8.0 미만에서는 채널은 설정할 필요가 없기 때문에 NotificationBuilder에 priority설정을 해주면 된다.

NotificationCompat.Builder(this, CHANNEL_ID)
    .setPriority(NotificationCompat.PRIORITY_HIGH)
    .setDefaults(NotificationCompat.DEFAULT_ALL)

 

8.0 이상에서는 채널에 important 설정을 해주면된다.

val importance = NotificationManager.IMPORTANCE_HIGH
val mChannel = NotificationChannel(CHANNEL_ID, name, importance)

+ Recent posts