728x90
action2, action3 을 만들고 NotificationCompat.Builder 에서 addAction으로 값을 넣어준다
package com.anushka.notificationdemo
import android.app.NotificationChannel
import android.app.NotificationManager
import android.app.PendingIntent
import android.content.Context
import android.content.Intent
import android.os.Build
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import androidx.core.app.NotificationCompat
class MainActivity : AppCompatActivity() {
private val channelID = "com.anushka.notificationdemo.channel1"
private var notificationManager: NotificationManager? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val button = findViewById<Button>(R.id.button)
notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
createNotificationChannel(channelID,"DemoChannel","this is a demo")
button.setOnClickListener {
displayNotification()
}
}
private fun displayNotification(){
val notificationId = 45
val tapResultIntent = Intent(this, SecondActivity::class.java)
val pendingIntent: PendingIntent = PendingIntent.getActivity(
this,
0,
tapResultIntent,
PendingIntent.FLAG_UPDATE_CURRENT
)
//action button 1
val intent2 = Intent(this, DetailsActivity::class.java)
val pendingIntent2: PendingIntent = PendingIntent.getActivity(
this,
0,
intent2,
PendingIntent.FLAG_UPDATE_CURRENT
)
val action2 : NotificationCompat.Action =
NotificationCompat.Action.Builder(0,"Details",pendingIntent2).build()
// action button 2
val intent3 = Intent(this, SettingsActivity::class.java)
val pendingIntent3: PendingIntent = PendingIntent.getActivity(
this,
0,
intent3,
PendingIntent.FLAG_UPDATE_CURRENT
)
val action3 : NotificationCompat.Action =
NotificationCompat.Action.Builder(0,"Settings",pendingIntent3).build()
val notification = NotificationCompat.Builder(this@MainActivity,channelID)
.setContentTitle("Demo Title")
.setContentText("This is a demo notification")
.setSmallIcon(android.R.drawable.ic_dialog_info)
.setAutoCancel(true)
.setPriority(NotificationCompat.PRIORITY_DEFAULT)
.setContentIntent(pendingIntent)
.addAction(action2)
.addAction(action3)
.build()
notificationManager?.notify(notificationId,notification)
}
private fun createNotificationChannel(id : String, name:String, channelDescription:String){
if(Build.VERSION.SDK_INT>= Build.VERSION_CODES.O){
val importance = NotificationManager.IMPORTANCE_HIGH
val channel = NotificationChannel(id,name,importance).apply {
description = channelDescription
}
notificationManager?.createNotificationChannel(channel)
}
}
}
728x90
'안드로이드 > Notification' 카테고리의 다른 글
안드로이드 Notification Reply Action (0) | 2022.11.28 |
---|---|
안드로이드 Notification Tap Action (0) | 2022.11.28 |
안드로이드 기본 Notification (0) | 2022.11.28 |