본문 바로가기

안드로이드/안드로이드

[안드로이드] 푸쉬 알림 (기초)

안드로이드 공식 문서

https://developer.android.com/guide/topics/ui/notifiers/notifications?hl=ko

 

알림 개요  |  Android 개발자  |  Android Developers

알림 개요 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 알림은 사용자에게 미리 알림을 주고 다른 사람과의 소통을 가능하게 하며 앱에서 보내는 기타 정

developer.android.com

 

개인 프로젝트를 진행하던 도중 백그라운드에서 위치를 받아 일정 위치에 도달하면 푸쉬 알림이 오도록 구현하였는데, 

이때 사용한 방법을 잊지 않기 위해 기록해둔다.

 

해당 방법은 간단한 방법이지만, 우리가 흔히 사용하는 앱들은 앱이 종료되어 있는 상태에서 푸쉬 알림이 온다.

Immortal Service , 죽지 않는 서비스라 한다.

 

따라서 해당 포스팅에서는 간단한 푸쉬 알림에 대해 작성하였고, Immortal Service는 나중에 공부한 후 작성할 예정..

 

사용 방법

1. Channel Create

private val CHANNEL_ID = "CHANNEL_ID"
private val CHANNEL_NAME = "CHANNEL_NAME"
private val CHANNEL_DESCRITION = "CHANNEL_DESCRITION"

fun createChannel() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        val importance = NotificationManager.IMPORTANCE_HIGH
        val channel = NotificationChannel(CHANNEL_ID, CHANNEL_NAME, importance).apply {
            description = CHANNEL_DESCRITION

        }
        
        val notificationManager: NotificationManager =
            getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
        notificationManager.createNotificationChannel(channel)
    }
}

 

2. Build

fun build(context:Context, title:String, content:String, summary:String){
    val style = NotificationCompat.BigTextStyle()
        .setBigContentTitle(title)
        .setSummaryText(summary)
        .bigText(content)

    val builder = NotificationCompat.Builder(context, CHANNEL_ID)
        .setSmallIcon(R.mipmap.ic_launcher)
        .setContentTitle(title)
        .setContentText(content)
        .setStyle(style)
        .setAutoCancel(false)
        .setShowWhen(true)
        .setColor(ContextCompat.getColor(context, R.color.purple_200))
        .setPriority(NotificationCompat.PRIORITY_DEFAULT)
}

 

3. Run

NotificationManagerCompat.from(context).notify(1, builder.build())