반응형
Message Notification
- 안드로이드 9.0에서 새롭게 추가
- 다자간의 메시지 내용을 표시하는 용도로 사용 (다자간의 채팅, 메시지를 주고 받는 것 같은 화면을 제공)
binding.button.setOnClickListener {
// 메시징 notification은 안드 9.0부터 시작하므로 버전별로 분기
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
val builder = getNotificationBuilder("message", "message style")
builder.setContentTitle("Message Style")
builder.setContentText("Message Style Notification")
// 메세지 아이콘
builder.setSmallIcon(android.R.drawable.ic_input_delete)
// 채팅 형식의 화면을 제공 -> 사용자를 나타내는 객체를 만들기
val personBuilder1 = Person.Builder() // 사용자 객체 만들기
val icon1 = IconCompat.createWithResource(this, android.R.drawable.ic_media_next)
personBuilder1.setIcon(icon1) // 사용자 객체에 아이콘 설정
personBuilder1.setName("정대만") // 사용자 이름 설정
val person1 = personBuilder1.build()
val personBuilder2 = Person.Builder() // 사용자 객체 만들기
val icon2 = IconCompat.createWithResource(this, R.mipmap.ic_launcher)
personBuilder2.setIcon(icon2) // 사용자 객체에 아이콘 설정
personBuilder2.setName("서태웅") // 사용자 이름 설정
val person2 = personBuilder2.build()
val messageStyle = NotificationCompat.MessagingStyle(person1) //person2 를 넣어도 동일하게 작동
messageStyle.addMessage("내 이름은 정대만 포기를 모르는 남자지", System.currentTimeMillis(), person1) // 메시지 내용과 시간을 넣어줌
messageStyle.addMessage("왕옹왕", System.currentTimeMillis(), person2)
messageStyle.addMessage("이제 내눈엔 림밖에 보이지 않는다", System.currentTimeMillis(), person1)
messageStyle.addMessage("왕옹왕", System.currentTimeMillis(), person2)
builder.setStyle(messageStyle)
val notification = builder.build()
val manager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
manager.notify(10, notification)
}
}
💡 val messageStyle = NotificationCompat.MessagingStyle(person1)
=> person1 을 넣는 것과 person2 를 넣는것에는 무슨 차이가 있을까? 동일하게 동작하는 것 같은데 내부적으로 어떤 차이가 있는지 모르겠다.
반응형
'Android' 카테고리의 다른 글
[안드로이드/Thread] Handler를 사용한 반복작업 처리 (0) | 2023.04.16 |
---|---|
[안드로이드/Thread] Thread 란? (0) | 2023.04.16 |
[안드로이드/메시징] 다양한 Notification (0) | 2023.04.14 |
[안드로이드/Error] PendingIntent.FLAG_UPDATE_CURRENT 오류 (0) | 2023.04.14 |
[안드로이드/메시징] Pending Intent (0) | 2023.04.13 |