二、进阶使用
NotificationCompat.Builder里面丰富的API,现在就介绍几个常用的
1、setSound方法
在通知发出的时候播放一段音频:
Notificationnotification2=newNotificationCompat.Builder(mContext)
...........//省略其他属性
.setSound(Uri.fromFile(newFile("/system/media/audio/ringtons/Luna.ogg")))//音频地址(这里是系统自带的一些铃声)
.build();//通知创建
2、setVibrate方法
让手机进行震动,注意这个需要在清单文件申请权限<uses-permission android:name="android.permission.VIBRATE"/>:
Notificationnotification2=newNotificationCompat.Builder(mContext)
...........//省略其他属性
.setVibrate(new long[]{0,1000,1000,1000})//长整形数组,用以设置手机静止和震动的时长,奇数位置代表手机静止的时长, //偶数位置代表手机震动的时长,以此类推这里表示静止0秒,然后震动1秒然后静止1秒,再震动1秒
.build();//通知创建
3、setLights方法
设置手机LED灯的闪烁
Notificationnotification2=newNotificationCompat.Builder(mContext)
...........//省略其他属性
.setLights(Color.GREEN,3000,1000)//设置闪烁灯的颜色,3000LED亮起时间,1000LED暗淡的时间
.build();//通知创建
4、setDefault方法
进行默认设置 ,会根据手机环境来确定播放什么铃声和如何震动等:
Notificationnotification2=newNotificationCompat.Builder(mContext)
...........//省略其他属性
.setDefaults(android.support.v4.app.NotificationCompat.DEFAULT_ALL)
.build();//通知创建
5、setStyle方法
设置构建富文本内容的通知,比如长文字、大图片等
1.5.1大文字,这个最多5*1024个字符,给setStyle方法传入BigTextStyle对象。
设置了长文字和没有设置的区别Notificationnotification2=newNotificationCompat.Builder(mContext)
...........//省略其他属性
.setStyle(newNotificationCompat.BigTextStyle().bigText("上周我带着两个第一次来北京的姑娘去三里屯,她们一走进太古里,就睁大眼睛环顾周围的一切。这里汇聚着整个北京城最时尚的男男女女,街拍摄影师扎堆在优衣库旁边的夹道上等待猎物,village里遍布着国际二线奢侈品牌和潮牌京城首店,全世界的美食和网红餐厅几乎都能找到。\n"+
"\n"+"因为紧挨着使馆区和外交公寓,三里屯是外国人高度活跃的区域,有时候,你走在人群中,听着各种语言此消彼长,不禁会产生一种幻觉:东京的涩谷、纽约的曼哈顿、伦敦的Shoreditch,又和此刻的三里屯有什么区别呢?\n"+"\n"+"全世界的大都会的时髦之地,都拥有一样的魔幻现实主义。\n"+"\n"+"不过,三里屯最有趣的故事,永远都不会发生在阳光下,暴涨的欲望潮水只会在夜里淹没每一座城池。如果你看过酒吧里男女的炽热,就能理解曾风极一时的优衣库试衣间事件,不过是一次冲动作祟的,光天化日下的擦枪走火,而在三里屯的夜里,性,是公认的、粗暴的主题之一。\n"+"\n"+"以及,酒精、钱、众生相,这些也是不夜屯想要展示给你的浮世绘画面。\n"+"\n"+"作者:知枝同学\n"+"链接:http://www.jianshu.com/p/49fd520e569c\n"+"來源:简书\n"+"著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。"))
.build();//通知创建
1.5.2大图片,还可以给图片添加一个短小的简介文字,给setStyle方法传入BigPictureStyle对象。
大图和文字介绍Notificationnotification4=newNotificationCompat.Builder(mContext)
...........//省略其他属性
.setStyle(newNotificationCompat.BigPictureStyle().bigPicture(BitmapFactory.decodeResource(
getResources(),R.mipmap.big_picture)).setSummaryText("这是大图哟"))
. build();//通知创建
6、setPriority方法
设置通知的重要程度,有5个常量选择 PRIORITY_DEFAULT=0,默认值;PRIORITY_LOW=-1,;PRIORITY_MIN= -2;
PRIORITY_HIGH=1;PRIORITY_MAX=2;值越大重要程度越高,值越小重要程度越低。
Notificationnotification4=newNotificationCompat.Builder(mContext)
...... 其他属性
.setPriority(NotificationCompat.PRIORITY_DEFAULT)
.build();//通知创建
网友评论