728x90
안드로이드 9.0에서 새롭게 추가된 Notification
다자간의 메시지 내용을 표시하는 용도로 사용한다.
package com.example.messagenotification
import android.app.NotificationChannel
import android.app.NotificationManager
import android.content.Context
import android.graphics.Color
import android.os.Build
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.core.app.NotificationCompat
import androidx.core.app.Person
import androidx.core.graphics.drawable.IconCompat
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button.setOnClickListener {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
val builder1 = getNotificationBuilder("message","message style")
builder1.setContentTitle("Message Style")
builder1.setContentText("Message Style Notification")
val persionBuilder1 = Person.Builder()
val icon1 = IconCompat.createWithResource(this,android.R.drawable.ic_media_next)
persionBuilder1.setIcon(icon1)
persionBuilder1.setName("홍길동")
val person1 = persionBuilder1.build()
val persionBuilder2 = Person.Builder()
val icon2 = IconCompat.createWithResource(this,R.mipmap.ic_launcher)
persionBuilder1.setIcon(icon2)
persionBuilder1.setName("최길동")
val person2 = persionBuilder2.build()
val messageStyle = NotificationCompat.MessagingStyle(person1)
messageStyle.addMessage("첫 번째 메시지",System.currentTimeMillis(),person1)
messageStyle.addMessage("두 번째 메시지",System.currentTimeMillis(),person2)
messageStyle.addMessage("세 번째 메시지",System.currentTimeMillis(),person1)
messageStyle.addMessage("네 번째 메시지",System.currentTimeMillis(),person2)
builder1.setStyle(messageStyle)
val notification = builder1.build()
val manager = getSystemService(Context.NOTIFICATION_SERVICE )as NotificationManager
manager.notify(10,notification)
}
}
}
fun getNotificationBuilder(id: String, name: String): NotificationCompat.Builder {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
val manager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
val channel = NotificationChannel(id, name, NotificationManager.IMPORTANCE_HIGH)
channel.enableLights(true)
channel.lightColor = Color.RED
channel.enableVibration(true)
manager.createNotificationChannel(channel)
val builder1 = NotificationCompat.Builder(this, id)
return builder1
} else {
val builder2 = NotificationCompat.Builder(this)
return builder2
}
}
}
728x90
'안드로이드 > 메세징' 카테고리의 다른 글
안드로이드 다양한 Notification (0) | 2022.06.13 |
---|---|
안드로이드 PendingIntent (0) | 2022.06.13 |
안드로이드 Notification (0) | 2022.06.13 |
안드로이드 항목 선택 Dialog (0) | 2022.06.13 |
안드로이드 ListDialog (0) | 2022.06.13 |