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)

  

posted on 2026-01-13 20:56  少杨  阅读(2)  评论(0)    收藏  举报