dependencies {
implementation 'io.github.ParkSangGwon:tedpermission-normal:3.3.0'
....
}
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
import android.app.NotificationChannel
import android.app.NotificationManager
import androidx.core.app.NotificationCompat
import android.os.Build
import android.graphics.Color
import android.media.AudioAttributes
import android.media.RingtoneManager
import android.net.Uri
import android.nfc.Tag
import com.gun0912.tedpermission.PermissionBuilder
import com.gun0912.tedpermission.PermissionListener
import com.gun0912.tedpermission.normal.TedPermission
import android.Manifest
import android.widget.Toast
val channel = NotificationChannel( channel_ID, channel_Name, NotificationManager.IMPORTANCE_HIGH )
channel.SetShowBadge( Boolean )
val uri: Uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)
val audioAttributes = AudioAttributes.Builder()
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
.setUsage(AudioAttributes.USAGE_ALARM)
.build()
channel.setSound(uri, audioAttributes) // <- Setting Audio
channel.enableLights(true) // <- Light
channel.lightColor = Color.RED // <- Light Color
channel.enableVibration(true) // <- Vibration Boolean
channel.vibrationPattern = longArrayOf(100, 200, 100, 200) // <- Setting Vibration
val manager = getSystemService(NOTIFICATION_SERVICE) as NotificationManager
val builder: NotificationCompat.Builder
val manager = getSystemService(NOTIFICATION_SERVICE) as NotificationManager
val builder: NotificationCompat.Builder
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
val channel_ID = "one-channel"
val channel_Name = "My Channel One"
val channel = NotificationChannel( channel_ID, channel_Name, NotificationManager.IMPORTANCE_HIGH )
var channel_description = "my channel one description"
channel.setShowBadge(true)
val uri: Uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)
val audioAttributes = AudioAttributes.Builder()
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
.setUsage(AudioAttributes.USAGE_ALARM)
.build()
channel.setSound(uri, audioAttributes)
channel.enableLights(true)
channel.lightColor = Color.RED
channel.enableVibration(true)
channel.vibrationPattern = longArrayOf(100, 200, 100, 200)
manager.createNotificationChannel(channel)
builder = NotificationCompat.Builder(this, channel_ID)
} else {
builder = NotificationCompat.Builder(this)
}
위 코드에서 else 구문을 사용하여 NotificationCompat.Builder 함수를 다르게 사용하였다. 낮은 버전에서는 Channel을 사용하지 않고 높은 버전에서 Channel을 사용하기 때문에 분류해주기 위함이다.
builder.setSmallIcon(android.R.drawable.ic_notification_overlay)
builder.setWhen(System.currentTimeMillis())
builder.setContentTitle("Content")
builder.setContentText("Text")
manager.notify(12, builder.build())