210202

알람 기능 본문

Android/OP.GG 프로젝트

알람 기능

dev210202 2021. 7. 22. 14:23

OP.GG 프로젝트 진행하면서 필요한 기술들을 차근차근 정리해보려고한다.

 

알람기능은 CodeLab을 참고해서 만들었다.

https://developer.android.com/codelabs/android-training-notifications?index=..%2F..%2Fandroid-training&hl=ko#2

 

다음과 같이 진행된다.

 

1. createNotificationChannel()

먼저 사용자에게 알림을 전달해줄 NotifiactionManager 객체를 생성한다.

lateinit var notificationManager : NotificationManager

그 다음 생성한 NotificationManager 객체를 인스턴스화 시켜준다.

notificationManager = requireActivity().getSystemService(NOTIFICATION_SERVICE) as NotificationManager
// activity에서 구현시 
// notificationManager = getSystemService(NOTIFICATION_SERVICE) as NotificationManager

그 다음 알림채널을 만든다.(API 수준 26부터는 모든 알림을 채널에 할당시켜야한다. 채널에서 채널의 모든 알림에 적용될 시각적/음향적 동작을 설정할 수 있다.)

알림채널 관련 문서 링크

https://developer.android.com/training/notify-user/channels?hl=ko 

 

알림 채널 만들기 및 관리  |  Android 개발자  |  Android Developers

Android 8.0(API 수준 26)부터는 모든 알림을 채널에 할당해야 합니다. 채널마다 채널의 모든 알림에 적용되는 시각적/음향적 동작을 설정할 수 있습니다. 그런 다음 사용자는 이 설정을 변경하고 앱

developer.android.com

if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O){
            val notificationChannel = NotificationChannel("channelID", "channelName", NotificationManager.IMPORTANCE_HIGH)
            notificationChannel.enableLights(true);
            notificationChannel.lightColor = Color.RED;
            notificationChannel.enableVibration(true);
            notificationChannel.description = "Notification!";
            notificationManager.createNotificationChannel(notificationChannel);
}

그 다음 알림을 생성한다.

알림은 내용과 동작을 설정할 수 있는 NotificationCompat.Builder 클래스를 사용하여 생성한다.

나는 getNotificationBuilder 함수에서 생성하고 return 해주는 방식으로 구현했다.

fun getNotificationBuilder() : NotificationCompat.Builder{
        val notifyBuilder = NotificationCompat.Builder(requireActivity(), "channelID")
            .setContentTitle("Notification Title")
            .setContentText("Notifation Text")
            .setSmallIcon(R.drawable.egg_icon)
        return notifyBuilder
}

그 다음 sendNotification 함수를 만들어 getNotificationBuilder에서 받은 값으로 알람을 설정한다.

fun sendNotification() {

        val notifyBuilder = getNotificationBuilder()
        notificationManager.notify(1, notifyBuilder.build())

}

실행은 다음과같이 실행시킨다.

 button.setOnClickListener {
            createNotificationChannel()
            sendNotification()
 }
Comments