创建通知栏;
1,需要创建NotificationManager通知管理器,用于管理通知,可以通过
Context上下文类中有个getSystemService方法传入参数Context.NOTIFICATION_SERVICE得到
2,new 个Notification对象参数(通知栏图标,提示信息过几秒消失,时间)
3,Notification引用对象中setlatesEventInfo方法用于显示布局界面,参数(上下文,通知栏标题,通知栏内容,延迟意图:点击通知栏所要做的意图)
4,NotificationManager通知管理器引用对象中notify方法用于发送通知,参数(通知的唯一id,通知对象)
5到这里基本能发送显示,但还没有做点击逻辑,点击逻辑在延迟意图中设置:
创建延迟意图PendingIntent对象通过静态方法实列化(有getActivity(),getService(),getBroadcastReceive()):Pending.getActivity()方法实列化,参数(上下文,请求码,意图,PendingIntent.FLAG);请求吗和flag参数当意图存有额外数据时有区别,一般PendingIntent.FLAG.CANSEL_CURRENT和PendingIntent.FLAG.UPDATA_CURRENT即可
此处意图对象是打开另一个活动界面:new Intent(this,AnotherActivity.class);
好了此时下拉点击通知时会跳转到另一个界面
6,高级功能:
通知栏可以设置发送通知时伴随手机震动,声音,led登显示(有红,绿,蓝颜色)我的手机只有红色闪烁;
一般默认就可以了:Notification引用对象的成员变量notification.defautes=Notification.DEFAULT_ALL;这里会根据手机的场景决定播放铃声及震动,
Notification引用对象notification.ledARGB=Notification.DEFAULT_LIGHTS;notification.flags=Notification.FLAG_SHOW_LIGHT当有未接电话或未读短信,led灯就会不停的闪烁;我手机是红色闪烁;
也可以自定义:声音soud这个属性石Uri对象,比如我们手机的/system/media/audio/ringtones目录下有Basic_tong.ogg音频文件,在代码中可以这样指定
Uri soundUri=Uri.fromFile(new File("/system/media/audio/ringtones/Basic_tone.ogg));
notification.sound=soundUri;
震动:使用的是vibrate这个属性,它是长整型数组,用于设置手机静止和振动时长,下标0表示手机静止时长1表示响铃时长,2又是静止时长,3又是响铃时长以此类推
long[] vibrates={0,1000,1000,1000};
notification.vibrate=vibrates;
前置led闪光灯:
notification.ledARGB=Color.GREEN;
notification.ledOnMs=1000;
notification.ledOffms=1000;
notification.flags=Notification.FLAG_SHOW_LIGHTS;