`
tansitongba
  • 浏览: 483308 次
文章分类
社区版块
存档分类
最新评论

Android通知管理(NotificationManager)的使用,包括震动,led闪屏

 
阅读更多

在android开发中经常要使用到通知,比如:收到短息,来电等等,通知是应用程序提醒用户的一种方式,他不需要使用Activity。

通知向用户传递信息有多种方式:(1)状态栏图标 (2)扩展的通知状态绘制器 (3)声音、震动、LED闪烁

通过一个小例子将上面几种方式集成到一起。

在配置扩展状态通知显示的时候,有两种方法:

1,使用setLatestEventInfo方法更新标准的扩展的状态通知显示中所显示的详细信息。

2,使用远程视图(Remote View)设置contentView和contentIntent,这样可以为扩展状态显示分配一个你需要的定制UI.

扩展状态窗口定制布局my_status.xml(一个简单线性布局,前面放一个imageview,后面一个textview)


要把这个定制布局分配给通知,要创建一个新的RemoteView对象,并把它分配给contentView属性,还需要想contentIntent属性分配一个待处理的意图(Pending Intent)代码如下:

如果要修改定制布局中视图的属性或者外观,可以使用远程视图对象的set*方法


向通知添加声音、闪屏、振动效果的最简单最一致的方式是使用当前用户的默认设置。

如果想全部默认设置就使用DEFAULT_ALL常量

如果要使用自己的定制的声音或者动态修改声音就可以设置mNotification.sound = ringURI;

要设置振动类型的话,需要向通知的vibrate属性分配一个longs类型的数组;

比如:

上面代码的作用是振动按照振动1秒,暂停1秒的模式进行振动,整个过程持续5秒。

需要注意的是,使用振动必须添加一个权限:

设置闪屏
mNotification.ledARGB = Color.BLUE;
mNotification.ledOffMS= 0;
mNotification.ledOnMS = 1;
mNotification.flags = mNotification.flags | Notification.FLAG_SHOW_LIGHTS;
ledARGB属性可以用来设置LED的颜色,ledOffMS和ledOnMS属性则可以设置LED闪烁的频率和模式。ledOnMS设置为1并把ledOffMS设置为0来打开LED,两个都设置为0则关闭LED.

完整的代码:

主界面布局文件

activity


提示:每个设备对LED的控制方面可能具有不同的限制,如果设置的颜色不可用,可以尝试换用其他颜色试试。

振动和LED在模拟器中是看不到效果的,必须使用真机。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics