在Android系统中,发一个状态栏通知还是很方便的。下面我们就来看一下,怎么发送状态栏通知,状态栏通知又有哪些参数可以设置?
首先,发送一个状态栏通知必须用到两个类: NotificationManager 、Notification。
NotificationManager: 是状态栏通知的管理类,负责发通知、清楚通知等。
NotificationManager 是一个系统Service,必须通过getSystemService()方法来获取。
Notification:是具体的状态栏通知对象,可以设置icon、文字、提示声音、振动等等参数。
下面是设置一个通知需要的基本参数:
- An icon (通知的图标)
- A title and expanded message (通知的标题和内容)
- A
PendingIntent (点击通知执行页面跳转)
可选的设置:
- A ticker-text message (状态栏顶部提示消息)
- An alert sound (提示音)
- A vibrate setting (振动)
- A flashing LED setting (灯光)
- 等等
一、创建Notification
通过NotificationManager 的notify(int, Notification) 方法来启动Notification。
第一个参数唯一的标识该Notification,第二个参数就是Notification对象。
二、更新Notification
调用Notification的 setLatestEventInfo方法来更新内容,然后再调用NotificationManager的notify()方法即可。(具体可以看下面的实例)
三、删除Notification
通过NotificationManager 的cancel(int)方法,来清除某个通知。其中参数就是
Notification的唯一标识ID。
当然也可以通过cancelAll()来清除状态栏所有的通知。
四、Notification设置(振动、铃声等)
1. 基本设置:
配一张图作说明:
2. 添加声音
如果要采用默认声音,只要使用default就可以了。
如果要使用自定义声音,那么就要用到sound了。如下:
上面这种方法,使用的是自己的铃声,如果想用系统自带的铃声,可以这样:
需要注意一点,如果default、sound同时出现,那么sound无效,会使用默认铃声。
默认情况下,通知的声音播放一遍就会结束。 如果你想让声音循环播放,需要为flags参数加上FLAG_INSISTENT。 这样声音会到用户响应才结束,比如下拉状态栏。
3. 添加振动
如果是使用默认的振动方式,那么同样也是使用default。
当然也可以自己定义振动形式,这边需要用到Long型数组。
这边的Long型数组中,第一个参数是开始振动前等待的时间,第二个参数是第一次振动的时间,第三个参数是第二次振动的时间,以此类推,随便定义多长的数组。但是采用这种方法,没有办法做到重复振动。
同样,如果default、vibrate同时出现时,会采用默认形式。
另外还需要注意一点:使用振动器时需要权限,如下:
4. 闪光
使用默认的灯光,如下:
自定义:
其中ledARGB 表示灯光颜色、ledOnMS 亮持续时间、ledOffMS 暗的时间。
注意:这边的颜色跟设备有关,不是所有的颜色都可以,要看具体设备。
5.其他有用的设置:
flags:
Notification.FLAG_INSISTENT; //让声音、振动无限循环,直到用户响应
Notification.FLAG_AUTO_CANCEL; //通知被点击后,自动消失
Notification.FLAG_NO_CLEAR; //点击'Clear'时,不清楚该通知(QQ的通知无法清除,就是用的这个)
下面附上我做的例子,供大家参考。 里面包括创建通知、更新通知、清除通知、设置自定义铃声、自定义振动、自定义通知视图等。
附上代码:
主类:
主页面:
自定义视图页面:
就讲这么多。
分享到:
相关推荐
首先,发送一个状态栏通知必须用到两个类: NotificationManager 、 Notification。 NotificationManager : 是状态栏通知的管理类,负责发通知、清楚通知等。 NotificationManager 是一个系统Service,必须通过 ...
本文主要讲解状态栏通知Notification、NotificationManager,小编觉得非常详细,给大家一个参考,希望对大家学习有所帮助。
Android高级应用源码-状态栏通知小图标,notification通知.zip
这个例子演示Android 在状态栏添加Notification信息图标及提示,相信大家对这个功能已经不陌生了,手机中安装的APP,一般都会在后台运行,时不时会在手机顶部的状态栏中显示应用的图标,滑出状态栏会看到详细的信息...
状态栏通知小图标notification通知.rar
实现android notification的默认形式和自定义
这几天做一个小软件在API28(Android 9.0)的模拟器上测试时,发现通知栏无效,经过一番查询,了解到:API26(Android 8.0)以后,引入了**通知渠道(Notification Channels)**这么一个东西来帮助用户管理通知。...
Android实现Notification的通知栏常驻.zip
此demo为状态栏通知小图标,notification通知,代码较为简单,可供参考
android消息通知栏Notification
android 状态栏的图标与文字提醒 NotificationManager与Notification
Android中实现发送状态栏通知案例
在使用手机时,当有未接来电或者是新短消息时,手机会给出相应的提示信息,这些提示信息通常会显示到手机屏幕的状态栏上。Android也提供了用于处理此类信息的类,他们是Notification和NotificationManager。其中,...
NULL 博文链接:https://forlan.iteye.com/blog/2264722
这个是android notification框架,如有需要请下载。发发发
这个是通知栏框架(Notificaiton)的全面学习,里面把大概所有的情况都列了出来,通过一个DEMO让你了解它的大致所有使用过程。 可以通过以下博文进行配套了解(有效果图): ...
自定义标准视图64dip的通知栏,功能丰富,敬请下载并指点不足。
状态栏通知小图标,notification通知.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
修改android 2.3版本Notification通知栏不显示的Bug Android 服务端下载 Notification通知栏 断点下载
Android的各种通知Notification、Dialog、Toast、Snackbar