基础通知的用法
- 通知的基础使用
Android的通知消息通过NotificationManger来进行管理,该对象通过Context的getSystem()方法获得。
NotificationManager = (NoyificationManager) getSystem(NOTIFICATIN_SERVICE);
因为Android使用的API版本过多的原因,可以对通知进行筛选判断,进而确定是否使用相应对消息进行建立消息通道
//当前使用的API版本为26,使用前应进行声明
@RequiresApi(api = 26)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {//判断API
NotificationChannel mChannel = new NotificationChannel(id, name,
NotificationManager.IMPORTANCE_LOW);
manager.createNotificationChannel(mChannel);
}
notification = new NotificationCompat.Builder(this, id)
.setContentTitle("这是一个内容标题")//设置通知栏标题
.setContentText("这是一个内容文本") //设置通知栏显示内容
.setWhen(System.currentTimeMillis())//通知产生的时间。
// 会在通知信息里显示,通常是系统获取到的时间
.setSmallIcon(R.mipmap.ic_launcher)//设置通知小ICON
.setLargeIcon(BitmapFactory.decodeResource(getResources()
, R.mipmap.ic_launcher))//设置通知大ICON
.setContentIntent(pi)
//设置当点击通知后的跳转
.setAutoCancel(true)
//设置点击了通知后,通知自动消失
.build();
//第三步:对Builder进行配置:
manager.notify(1, notification);
- 当想要对消息进行活动转跳设置时,只需要设置PendingIntent,PendingIntent的使用和Intent类似,只是在参数中多了个Intent参数,通过其他参数的判断,而确定是否进行转跳活动
Intent intent = new Intent(this, No.class);
//PendingIntent.getActivity 接收4个参数
// 第1个参数是Context
// 第2个参数一般用不到,传0即可
// 第3个参数是一个Intent对象,可以通过这个对象构建出PendingIntent的意图
// 这里的Intent表达了我要启动NotificationManager活动的企图
// 第4个参数是用于确定PendingIntent的行为,有4个默认值,通常情况下传入0即可
PendingIntent pi = PendingIntent.getActivity(this, 0, intent, 0);
4.通知的高阶设置
//在Notification.Builder中设置多种方式
.setSound(Uri.fromFile (new File("手机中想要播放的音频的绝对路径")))//设置音频的播放
.setVibrate(new long[]{0,1000.1000.1000})//设置手机的通知来时震动,需要获取权限
<uses-permission android:name="android.permission.VIBRATE"/>
.setLights(Color.GREEN,1000,1000)//设置通知来时,手机呼吸灯的闪烁时间,第一个参数是颜色,第二个参数是闪烁时间,第二个参数是熄灭时间
.setDefaults(NotificationCompat.DEFAULT_ALL)//通过默认的方式开启呼吸灯