美文网首页
安卓通知。横幅通知 工具类 NotificationUtils

安卓通知。横幅通知 工具类 NotificationUtils

作者: 风就那么大 | 来源:发表于2024-01-30 01:51 被阅读0次

object NotificationUtils {
    private var manager: NotificationManager?=null
    private lateinit var notification: Notification
    private lateinit var pendingIntent: PendingIntent
    fun showNotification(activity: Activity,contentTitle:String,contentText :String) {
        if (manager==null){
            manager = activity.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
        }
        //对手机系统版本进行一个判断,只有Android8.0以上才创建
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            //这个时候我就去创建一个NotificationChannel
            //NotificationChannel里面有三个参数,第一id要和Notification的一致,第二个就是他的名字,可以随意设置,第三个是重要程度,需要通过NotificationManager类来设置
            val channel = NotificationChannel("wang", "测试通知", NotificationManager.IMPORTANCE_HIGH)
            //我们创建完使用的时候,需要用Notification通知管理类把它放进去
            manager?.createNotificationChannel(channel)
        }
        pendingIntent = PendingIntent.getActivity(activity, 0, Intent(), 0)
        notification = NotificationCompat.Builder(activity, "wang")
            .setContentTitle(contentTitle)
            .setContentText(contentText) //通知图标应该使用纯色的图片,因为Android从5.0系统开始,对于图标设计进行了修改,所有应用程序
            //的通知栏图标,应该使用alpha图层,其实就是没有颜色的图片
            .setSmallIcon(R.mipmap.logo) //给小图标设置颜色
            .setColor(Color.parseColor("#ff0000")) //设置大图标
            .setLargeIcon(BitmapFactory.decodeResource(activity.resources, R.mipmap.logo)) //点击通知时跳转
            .setContentIntent(pendingIntent) //设置点击通知后清除通知
            .setAutoCancel(true) //设置通知被创建的时间  不设置的话就显示的是当前系统时间
            // .setWhen()
            .build()
        //发送通知
        manager?.notify(1,notification);
    }
}

相关文章

网友评论

      本文标题:安卓通知。横幅通知 工具类 NotificationUtils

      本文链接:https://www.haomeiwen.com/subject/yfynodtx.html