android 发送通知
android 发送 Notification
import android.Manifest
import android.app.NotificationChannel
import android.app.NotificationManager
import android.content.Context
import android.content.pm.PackageManager
import androidx.core.app.ActivityCompat
import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
object SendNotification{
fun send(context: Context){
val importance = NotificationManager.IMPORTANCE_DEFAULT
val description = "Channel description"
val name: CharSequence? = "channelName" //使用资源文件可以实现国际化
val channel = NotificationChannel("1", name, importance)
channel.description = description
val builder = NotificationCompat.Builder(context, channel.id)
.setSmallIcon(R.drawable.ic_launcher_foreground)
.setContentTitle("notice")
.setContentText("notice content")
.setPriority(NotificationCompat.PRIORITY_DEFAULT)
if (ActivityCompat.checkSelfPermission(
context,
Manifest.permission.POST_NOTIFICATIONS
) != PackageManager.PERMISSION_GRANTED
) {
// TODO: Consider calling
// ActivityCompat#requestPermissions
// here to request the missing permissions, and then overriding
// public void onRequestPermissionsResult(int requestCode, String[] permissions,
// int[] grantResults)
// to handle the case where the user grants the permission. See the documentation
// for ActivityCompat#requestPermissions for more details.
return
}
val managerCompat = NotificationManagerCompat.from(context)
managerCompat.createNotificationChannel(channel)
managerCompat.notify(1,builder.build())
}
}
加入intent
val intent = Intent(context, MainActivity::class.java).apply {
// 创建一个只包含新Activity的任务栈。
flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
}
// 创建 PendingIntent
val pendingIntent = PendingIntent.getActivity(
context,
1, // 使用唯一的请求码
intent,
// 使用 FLAG_IMMUTABLE 来增强安全性
PendingIntent.FLAG_IMMUTABLE
)
builder.setContentIntent(pendingIntent)
.setAutoCancel(true)
浙公网安备 33010602011771号