在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在模拟器中是看不到效果的,必须使用真机。
分享到:
相关推荐
NULL 博文链接:https://forlan.iteye.com/blog/2264722
NotificationManager : 是状态栏通知的管理类,负责发通知、清楚通知等。 NotificationManager 是一个系统Service,必须通过 getSystemService()方法来获取。 代码如下:NotificationManager nm =
NULL 博文链接:https://hualikejava.iteye.com/blog/953947
可以设置一条通知,当然可以更新一条通知,我们通过在调用NotificationManager.notify(ID, notification)时所使用的ID来更新它。为了更新你之前发布的通知,你需要更新或者创建一个NotificationCompat.Builder对象,...
Android界面 NotificationManager使用Bitmap做图标,如何实现呢,本文将介绍解决方法,需要的朋友可以参考下
主要介绍了Android 使用AlarmManager和NotificationManager来实现闹钟和通知栏,需要的朋友可以参考下
本文主要讲解状态栏通知Notification、NotificationManager,小编觉得非常详细,给大家一个参考,希望对大家学习有所帮助。
自学 Android 做的第二十七个 Android 程序,使用了 NotificationManager、Notification 和 Notification.Builder
本文实例讲解了通知Notification使用方法,此知识点就是用作通知的显示,包括振动、灯光、声音等效果,分享给大家供大家参考,具体内容如下 效果图: MainActivity: import java.io.File; import android....
安卓通知栏实现,通过 NotificationManager实现管理 notification ,包括 发送通知和 取消通知;
Android基础教程之----Android状态栏提醒(Notification,NotificationManager)的使用.doc Android基础教程之----SMS简单发送短信程序(两个模拟器之间的通信)!.doc Android基础教程之----动态更改屏幕方向的简单例子...
要使用消息通知,必须要用到两个类:NotificationManager和Notification,其他NotificationManager的初始化是用getSystemService方法,并且通过notify方法来向android系统发送消息栏通知和显示。效果 :代码: 代码...
通知管理器通知管理器可帮助您安排本地通知并在相应时间触发它们。安排好的通知时间和组信息存储在数据库中,并在需要时使用它们。
android 状态栏的图标与文字提醒 NotificationManager与Notification
Android 用户界面,讲述了Android中的事件处理机制、布局管理和常用组件的使用。 第5章 Android基本程序单元Activity Android 基本程序单元Activity,讲述了Android中重要组件Activity的创建、启动和生命周期等...
2.3.2 运行HelloAndroid及模拟器的使用 2.3.3 调试HelloAndroid 2.4 小结 第二部分 基础篇 第3章 Android程序设计基础 3.1 Android程序框架 3.1.1 Android项目目录结构 3.1.2 Android应用解析 3.2 Android的生命...
在使用手机时,当有未接来电或者是新短消息时,手机会给出...使用Notification和NotificationManager类发送和显示通知也比较简单,大致可分为以下4个步骤。 (1)调用getSystemService()方法获取系统的NotificationManag
本文实例讲述了Android开发之使用通知栏显示提醒信息的方法。分享给大家供大家参考,具体如下: 用通知栏来提醒 public void notifyKJ() { //获得通知管理器,通知是一项系统服务 NotificationManager manager = ...
首先需要一个NotificationManager对象来对通知进行管理。代码如下 NotificationManager manager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE); 2.使用一个Builder构造器来创建一个Notification...