通知栏
设置提醒标志符Flags
功能:
提醒标志符,向通知添加声音、闪灯和振动效果等设置达到通知提醒效果,可以组合多个属性
使用方法(其一):
Notification notify = mBuilder.build();
notify.flags = Notification.FLAG_AUTO_CANCEL;//
提醒标志符成员:
Notification.FLAG_SHOW_LIGHTS //三色灯提醒,在使用三色灯提醒时候必须加该标志符
Notification.FLAG_ONGOING_EVENT //发起正在运行事件(活动中)
Notification.FLAG_INSISTENT //让声音、振动无限循环,直到用户响应 (取消或者打开)
Notification.FLAG_ONLY_ALERT_ONCE //发起Notification后,铃声和震动均只执行一次
Notification.FLAG_AUTO_CANCEL //用户单击通知后自动消失
Notification.FLAG_NO_CLEAR //只有全部清除时,Notification才会清除 ,不清楚该通知(QQ的通知无法清除,就是用的这个)
Notification.FLAG_FOREGROUND_SERVICE //表示正在运行的服务
附:
使用方法(其二):
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this);
PendingIntent pendingIntent= PendingIntent.getActivity(this, 1, new Intent(), flags);
mBuilder.setContentIntent(PendingIntent intent);
向通知添加声音、闪灯和振动效果
功能:
向通知添加声音、闪灯和振动效果的最简单、最一致的方式是使用当前的用户默认设置,使用defaults属性.
可以组合多个属性.
使用方法:
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this);
mBuilder.setDefaults(Notification.DEFAULT_LIGHTS|Notification.DEFAULT_SOUND);//不设置这个[响铃,闪灯,震动]都不会执行,而是安静.
对应属性:
Notification.DEFAULT_VIBRATE //添加默认震动提醒 需要 VIBRATE permission
Notification.DEFAULT_SOUND // 添加默认声音提醒
Notification.DEFAULT_LIGHTS// 添加默认三色灯提醒
Notification.DEFAULT_ALL// 添加默认以上3种全部提醒
不设置//这个[响铃,闪灯,震动]都不会执行,而是安静.
设置震动方式
使用方法(其一):
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this);
mBuilder.setVibrate(new long[] {0,300,500,700});
使用方法(其二):
Notification notify = mBuilder.build();
notify.vibrate = new long[] {0,300,500,700};
效果:
延迟0ms,然后振动300ms,在延迟500ms,接着在振动700ms。
三色灯提醒
功能:
android支持三色灯提醒,这个方法就是设置不同场景下的不同颜色的灯。
使用方法(其一):
mBuilder.setLights(0xff0000ff, 300, 0);
使用方法(其二):
Notification notify = mBuilder.build();
notify.flags = Notification.FLAG_SHOW_LIGHTS;
notify.ledARGB = 0xff0000ff;
notify.ledOnMS = 300;
notify.ledOffMS = 300;
描述:
其中ledARGB 表示灯光颜色、 ledOnMS 亮持续时间、ledOffMS 暗的时间。
注意:
1)只有在设置了标志符Flags为Notification.FLAG_SHOW_LIGHTS的时候,才支持三色灯提醒。
2)这边的颜色跟设备有关,不是所有的颜色都可以,要看具体设备。
设置提醒声音
使用方法(其一):
//设置默认铃声
mBuilder.setDefaults(Notification.DEFAULT_SOUND);
//设置自定义铃声
mBuilder.setSound(Uri.parse("file:///sdcard/xx/xx.mp3"));
//获取Android多媒体库内的铃声
mBuilder.setSound(Uri.withAppendedPath(Audio.Media.INTERNAL_CONTENT_URI, "5"));
使用方法(其二):
Notification notify = mBuilder.build();
notify.sound = Uri.parse("file:///sdcard/xx/xx.mp3");
设置优先级
使用方法(其一):
mBuilder.setPriority(int pri);
使用方法(其二):
Notification notify = mBuilder.build();
notify.priority = Notification.PRIORITY_DEFAULT;
可选属性:
Notification.PRIORITY_DEFAULT
Notification.PRIORITY_HIGH
Notification.PRIORITY_LOW
Notification.PRIORITY_MAX
Notification.PRIORITY_MIN
正在进行的通知
使用方法(唯一):
mBuilder.setOngoing(false);
功能:
设置为ture,表示它为一个正在进行的通知。
他们通常是用来表示一个后台任务,用户积极参与(如播放音乐)或以某种方式正在等待,因此占用设备(如一个文件下载,同步操作,主动网络连接).
进度条
功能:
设置带进度条的通知,可以在下载中使用.
使用方法(唯一):
mBuilder.setProgress(int max, int progress,boolean indeterminate)
响应[点击,删除,紧急]事件
方法(其一):
//点击
mBuilder.setContentIntent(PendingIntent intent);
//清空
mBuilder.setDeleteIntent(PendingIntent intent);
//响应紧急事件
setFullScreenIntent(PendingIntent intent, boolean highPriority)
方法(其二):
Notification notify = mBuilder.build();
notify.contentIntent:在通知窗口区域,Notification被单击时的响应事件由该intent触发;
notify.deleteIntent:当用户点击全部清除按钮时,响应该清除事件的Intent;
notify.fullScreenIntent:响应紧急状态的全屏事件(例如来电事件),也就是说通知来的时候,跳过在通知区域点击通知这一步,直接执行fullScreenIntent代表的事件。
附:
PendingIntent的位标识符:
FLAG_ONE_SHOT 表示返回的PendingIntent仅能执行一次,执行完后自动取消
FLAG_NO_CREATE 表示如果描述的PendingIntent不存在,并不创建相应的PendingIntent,而是返回NULL
FLAG_CANCEL_CURRENT 表示相应的PendingIntent已经存在,则取消前者,然后创建新的PendingIntent,这个有利于数据保持为最新的,可以用于即时通信的通信场景
FLAG_UPDATE_CURRENT 表示更新的PendingIntent
如何取消掉通知栏上的通知
1.设置对应的flags,让用户点击既被消除:
notification.flags = FLAG_AUTO_CANCEL;
2.通过手动消除某项或则全部通知
mNotificationMgr.cancle(NOTIFICATION_ID);//消除对应ID的通知
mNotificationMgr.cancleAll();//消除创建的所有通知
Android回想录之通知栏