「这是我参与2022首次更文挑战的第2天,活动详情查看:2022首次更文挑战」
紧接着上一篇的内容,下面简单介绍下Notification的进阶使用!
什么是进阶使用,就是比基础使用更高级一点,使用的场景不是特别多,但是可以做到特殊的操作
Notification的进阶使用
其实也不是什么特别高级的使用,就是对通知做一些高级的设置,比如声音,显示效果,震动等等 废话不多说,直接上代码
设置震动
notification.setVibrate(new long[]{0,1000,1000,1000})
这个是需要权限的,申请权限:\
<uses-permission android:name="android.permission.VIBRATE"/>
设置声音
.setSound(Uri.fromFile(new File("/system/media/audio/ringtones/Luna.ogg"))) //设置通知提示音
设置通知的显示效果
.setLights(Color.GREEN,1000,1000)//设置前置LED灯进行闪烁, 第一个为颜色值 第二个为亮的时长 第三个为暗的时长
这些效果可以连接在一起显示,全部设置完如下:
NotificationManager manager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
Intent intent = new Intent(MainActivity.this,NotificationActivity.class);
PendingIntent pi = PendingIntent.getActivity(MainActivity.this,0,intent,0);
Notification notification = new NotificationCompat.Builder(MainActivity.this)
.setContentText("这是测试通知内容")
.setWhen(System.currentTimeMillis())
.setSmallIcon(R.mipmap.ic_launcher)
.setLargeIcon(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher))
.setSound(Uri.fromFile(new File("/system/media/audio/ringtones/Luna.ogg")))
.setVibrate(new long[]{0,1000,1000,1000})
.setLights(Color.GREEN,1000,1000)
.setContentIntent(pi)
.setDefaults(NotificationCompat.DEFAULT_ALL)
.build();
manager.notify(1,notification);
全部设置完,就可以发送通知了,pendingIntent是点击通知内容的事件处理,跳转到点击后的页面,这些都是Notification的自带的属性设置,如果想设置 显示图片,或者显示的内容很多,或者添加通知内容的显示样式,这些都是需要对通知的内容做特殊处理,比如设置显示文本的style,设置图片的显示,图片可以支持本地,也可以支持网络图片,当然自带的显示只能支持bitmap类型,需要对网络图片做处理后,转换成bitmap后才能显示,这些我们下一篇文章再介绍,以及可以自定义的显示我们的通知样式。