Android学习→发送通知

一、预期实现的功能

  • 通知弹出横幅,通知发送时,手机弹出通知横幅,显示一段时间。
  • 锁屏显示消息

二、如何开启通知

1 检测API版本

从Android 8(API Level 26,Android O) 开始,之前获取通知的方式在API版本较新的手机上已经不适用了。为了让应用的发送通知的模式适合各个API版本,需要在设置通知前检测API版本。

检测API版本的方法可以是if…else…语句块,判断API的版本。API版本可以通过build.VERSION.SDK_INT获取,需要导入模块android.os.build

if(build.VERSION.SDK_INT>26){
   
    //针对高级API的通知操作
} else {
   
    //对较低版本API的通知操作
}

2 针对API Level 26 以上的通知操作

API level 26引入了通知渠道的概念,要想成功发送通知,需要设置一个消息渠道Channel。

基本的步骤是:

  • 建立NotificationManager对象;
  • 判断API等级大于等于26→建立通知渠道NotificationChannel对象,构造函数传入两个参数,一个是通知渠道的id,另一个是通知渠道的name,还可以指定第三个参数,是NotificationManager中的静态常量(整型),表示通知的重要程度,形式如同NotificationManager.IMPORTANCE_DEFAULT,DEFAULT及以上,通知时默认会有震动;
  • NotificationManager对象调用createNotificationChannel方法,传入之前构造的消息渠道;
  • 建立NotificationCompat.Build对象,构造函数传入当前上下文,以及之前的消息渠道的id;
  • NotificationCompat.Build对象调用各种set方法,设置通知的各种属性,最后调用build()方法,生成Notification对象,将其赋值给一个Notification实例notice;
  • NotificationManager调用notify方法,传入notice的id(整数,自己指定,用于区分)以及notice对象,即可发送通知。

还可以加入一些别的逻辑,例如将上述过程加入到按钮点击事件中,即可在按钮点击时发送消息。
下面就给出一段实例程序和运行效果图,测试机型HONOR 20,Android10(Android Q,API level 29)系统。

//代码较长,不截图了
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.NotificationCompat;

import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值