通知
2015-09-07 16:41
337 查看
1.通知:
首先需要一个NotificationManager来对通知进行管理可以调用Context的getSystemService()方法获取到,getSystemService()方法接受一个字符串参数用于确定获取系统的哪个服务,这里我们传入Context.NOTIFICSTION_SERVICE即可
NotificationManager manager=(NotificationManager)getSystemService(Context.NOTIFICSTION_SERVICE);
接下来需要创建一个Notification对象,这个对象用于存储通知所需的各种信息,我们可以使用他的有参构造函数来进行创建,Notification的有残构造函数接受三个参数,第一个参数用于指定通知的图标,第二个参数指定通知的ticker内容,当通知被创建时,他会在系统的状态栏一闪而过,属于一种瞬时的提示信息,第三个参数指定通知被创建的时间,以毫秒为单位,当下拉系统状态栏时,这里指定的时间会显示在相应的通知上,因此,创建一个Notification对象就可以写成:
Notification notification = new Notification(R.drawble.icon,“This is ticker text”,)System.currentTimeMills());
创建好Notification后,还需要对通知的布局进行设定,这里指需要调用Notification的setLatestEventInfo()方法就可给通知一个标准的布局,这个方法接受四个参数,第一个是Context,第二个是用于指定通知内容,下拉系统状态栏jiukeyi8看到这部分内容,第三个参数用于指定通知的标题内容,同样下拉系统状态栏就可以看到这部分内容,第四个参数我们暂时用不到,先传入null
notification.setLatestEventInfo(context,"This is cotent title","This is content text",null);
以上工作完成后,只需要调用NotificationManager的notify()方法就可以让通知显示出来了,notify()接收两个参数,第一个是id,要保证每个通知的id都是不同的,第二个是Notification对象,这里直接将创建好的Notification对象传入即可
manager.notify(1,notification);
即创建通知:
NotificationManager manager=(NotificationManager)getSystemService(Context.NOTIFICSTION_SERVICE);
Notification notification = new Notification(R.drawble.icon,“This is ticker text”,)System.currentTimeMills());
notification.setLatestEventInfo(context,"This is cotent title","This is content text",null);
manager.notify(1,notification);
manager.cancel(1);//取消通知
不能点击,点击没反应
setLatestEventInfo()方法的第四个参数是一个PendingIntent对象
PendingIntent的用法很简单,主要提供了几个静态方法用于获取PendingIntent实例,可以根据需求选择是使用getActivity(),getBroadcast()或者是getService()方法,这几个方法所接受的参数都是相同的,第一个是Context,第二个参数一般用不到,通常传入0,第三个参数是一个Intent对象,我们可以通过这个对象构建出PendingIntent的意图,第四个参数用于确定PendingIntent的行为,有FLAG_ONE_SHOT、FLAG_NO_CREATE,FLAG_CANCEL_CURRENT,FLAG_UPDATE_CURRENT四种值可选,
Notification属性:
sound,可以在通知发出的时候播放一段音频,这样就能很好地告知用户有通知到来,sound这个属性是一个Uri对象,所以在指定音频文件的时候需要首先要获取到音频文件对应的Uri,比如手机中/system/media/audio/ringtones目录下有一个Basic_tone.ogg音频文件,在代码中就可以这样指定:
Uri soundUri=Uri.fromFile(new File("/system/media/audio/ringtones/Basic_tone.ogg"));
notification.sound=soundUri;
vibrate:再通知到来的时候让手机震动,使用vibrate这个属性
他是一个长整形的数组,用于设置手机静止和振动的时长,以毫秒为单位,下表为0的值表示手机静止的时长,下表为1的值表示振动的时长,下表为2的值又表示静止的时长,以此类推,如果想要让手机再通知到来的时候立即振动一秒,然后静止1s,再震动1s,可以写成:
long[] vibrates={0,1000,1000,1000};
notification.vibrate=vibrates;
要使手机震动,需要声明权限<uses-permission android:name="android.permission.VIBRATE"/>
再通知来时控制手机LED灯的显示:
我们可以使用ledARGB、ledOnMS、ledOffMS以及flags这几个属性来实现LED灯闪烁:
ledARGB控制灯的颜色,一般有红绿蓝三种颜色可选, ledOnMS指定LED灯亮起的时长,以毫秒文单位,ledOffMS指定灯暗去的时长,也以毫秒为单位,flags可用于指定通知的一些行为,其中就包括显示LED灯这一项,所以,当通知到来时,要显示绿灯一闪一闪的效果,代码如下:
notification.ledARGB=Color.GREEN;
notification.ledOnMS=1000;
notification.ldeOffMS=1000;
notification.flags=Notification.FLAG_SHPW_LIGHTS;
如果不想有这么复杂的设置,也可以直接使用通知的默认效果,他会根据手机当前的环境决定播放什么铃声,以及如何震动:
notification.defaults=Notification.DEFAULT_ALL;
2.接受和发送短信
首先需要一个NotificationManager来对通知进行管理可以调用Context的getSystemService()方法获取到,getSystemService()方法接受一个字符串参数用于确定获取系统的哪个服务,这里我们传入Context.NOTIFICSTION_SERVICE即可
NotificationManager manager=(NotificationManager)getSystemService(Context.NOTIFICSTION_SERVICE);
接下来需要创建一个Notification对象,这个对象用于存储通知所需的各种信息,我们可以使用他的有参构造函数来进行创建,Notification的有残构造函数接受三个参数,第一个参数用于指定通知的图标,第二个参数指定通知的ticker内容,当通知被创建时,他会在系统的状态栏一闪而过,属于一种瞬时的提示信息,第三个参数指定通知被创建的时间,以毫秒为单位,当下拉系统状态栏时,这里指定的时间会显示在相应的通知上,因此,创建一个Notification对象就可以写成:
Notification notification = new Notification(R.drawble.icon,“This is ticker text”,)System.currentTimeMills());
创建好Notification后,还需要对通知的布局进行设定,这里指需要调用Notification的setLatestEventInfo()方法就可给通知一个标准的布局,这个方法接受四个参数,第一个是Context,第二个是用于指定通知内容,下拉系统状态栏jiukeyi8看到这部分内容,第三个参数用于指定通知的标题内容,同样下拉系统状态栏就可以看到这部分内容,第四个参数我们暂时用不到,先传入null
notification.setLatestEventInfo(context,"This is cotent title","This is content text",null);
以上工作完成后,只需要调用NotificationManager的notify()方法就可以让通知显示出来了,notify()接收两个参数,第一个是id,要保证每个通知的id都是不同的,第二个是Notification对象,这里直接将创建好的Notification对象传入即可
manager.notify(1,notification);
即创建通知:
NotificationManager manager=(NotificationManager)getSystemService(Context.NOTIFICSTION_SERVICE);
Notification notification = new Notification(R.drawble.icon,“This is ticker text”,)System.currentTimeMills());
notification.setLatestEventInfo(context,"This is cotent title","This is content text",null);
manager.notify(1,notification);
manager.cancel(1);//取消通知
不能点击,点击没反应
setLatestEventInfo()方法的第四个参数是一个PendingIntent对象
PendingIntent的用法很简单,主要提供了几个静态方法用于获取PendingIntent实例,可以根据需求选择是使用getActivity(),getBroadcast()或者是getService()方法,这几个方法所接受的参数都是相同的,第一个是Context,第二个参数一般用不到,通常传入0,第三个参数是一个Intent对象,我们可以通过这个对象构建出PendingIntent的意图,第四个参数用于确定PendingIntent的行为,有FLAG_ONE_SHOT、FLAG_NO_CREATE,FLAG_CANCEL_CURRENT,FLAG_UPDATE_CURRENT四种值可选,
Notification属性:
sound,可以在通知发出的时候播放一段音频,这样就能很好地告知用户有通知到来,sound这个属性是一个Uri对象,所以在指定音频文件的时候需要首先要获取到音频文件对应的Uri,比如手机中/system/media/audio/ringtones目录下有一个Basic_tone.ogg音频文件,在代码中就可以这样指定:
Uri soundUri=Uri.fromFile(new File("/system/media/audio/ringtones/Basic_tone.ogg"));
notification.sound=soundUri;
vibrate:再通知到来的时候让手机震动,使用vibrate这个属性
他是一个长整形的数组,用于设置手机静止和振动的时长,以毫秒为单位,下表为0的值表示手机静止的时长,下表为1的值表示振动的时长,下表为2的值又表示静止的时长,以此类推,如果想要让手机再通知到来的时候立即振动一秒,然后静止1s,再震动1s,可以写成:
long[] vibrates={0,1000,1000,1000};
notification.vibrate=vibrates;
要使手机震动,需要声明权限<uses-permission android:name="android.permission.VIBRATE"/>
再通知来时控制手机LED灯的显示:
我们可以使用ledARGB、ledOnMS、ledOffMS以及flags这几个属性来实现LED灯闪烁:
ledARGB控制灯的颜色,一般有红绿蓝三种颜色可选, ledOnMS指定LED灯亮起的时长,以毫秒文单位,ledOffMS指定灯暗去的时长,也以毫秒为单位,flags可用于指定通知的一些行为,其中就包括显示LED灯这一项,所以,当通知到来时,要显示绿灯一闪一闪的效果,代码如下:
notification.ledARGB=Color.GREEN;
notification.ledOnMS=1000;
notification.ldeOffMS=1000;
notification.flags=Notification.FLAG_SHPW_LIGHTS;
如果不想有这么复杂的设置,也可以直接使用通知的默认效果,他会根据手机当前的环境决定播放什么铃声,以及如何震动:
notification.defaults=Notification.DEFAULT_ALL;
2.接受和发送短信
相关文章推荐
- C语言可以给字符数组赋值的方法
- COCI CONTEST #3 29.11.2014 HONI
- 编译wpa_supplicant
- 删除字符串中多余的空格]给定字符串,删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个
- IT人—SHH开山之作
- poj 3252 数位dp(Round Number)
- 用深度遍历dfs判断一个有向图是否有环
- 虚幻引擎3命令行参数
- swing 界面操作打开文件对话框
- 2015年终总结(二)
- hdu1025(nlogn的求非递减子序列)
- BZOJ 2456: mode 水题
- js 字符串日期 转成 Date
- COCI CONTEST #3 29.11.2014 HONI
- typedef int (* func)(int ,int ) 定义函数指针类型 的理解
- (四)linux下配置jenkins--构建一个自由风格的项目
- STM32串口第一个字节丢失问题的分析过程
- Java基础-Java生成MD5简单实例
- memcached缓存服务器
- android开发关联源码