Android 通知之 Notification

Notifications | Android Developers
http://developer.android.com/guide/topics/ui/notifiers/notifications.html#NotificationResponsehtml

 

Android--通知之Notification
http://www.cnblogs.com/plokmju/p/android_Notification.htmlandroid

 

小图标,使用setSamllIcon()方法设置。
标题,使用setContentTitle()方法设置。
文本内容,使用setContentText()方法设置。 数组

PendingIntent提供了多个静态的getXxx()方法,用于得到适用于不一样场景的PendingIntent对象。通常须要传递的几个参数都很常规,只介绍一个flag参数,用于标识PendingIntent的构造选择:
FLAG_CANCEL_CURRENT:若是构建的PendingIntent已经存在,则取消前一个,从新构建一个。
FLAG_NO_CREATE:若是前一个PendingIntent已经不存在了,将再也不构建它。
FLAG_ONE_SHOT:代表这里构建的PendingIntent只能使用一次。
FLAG_UPDATE_CURRENT:若是构建的PendingIntent已经存在,则替换它,经常使用。ide

Notification视觉风格
  Notification有两种视觉风格,一种是标准视图(Normal view)、一种是大视图(Big view)。标准视图在Android中各版本是通用的,可是对于大视图而言,仅支持Android4.1+的版本。ui

从官方文档了解到,一个标准视图显示的大小要保持在64dp高,宽度为屏幕标准。
标准视图的通知主体内容有一下几个:
1.通知标题。
2.大图标。
3.通知内容。
4.通知消息。
5.小图标。
6.通知的时间,通常为系统时间,也可使用setWhen()设置。orm

而对于大视图(Big View)而言,它的细节区域只能显示256dp高度的内容,而且只对Android4.1+以后的设备才支持,它比标准视图不同的地方,均须要使用setStyle()方法设定xml

setStyle()传递一个NotificationCompat.Style对象,它是一个抽象类,Android为咱们提供了三个实现类,用于显示不一样的场景。分别是:htm

setStyle()传递一个NotificationCompat.Style对象,它是一个抽象类,Android为咱们提供了三个实现类,用于显示不一样的场景。分别是:对象

NotificationCompat.BigPictureStyle, 在细节部分显示一个256dp高度的位图。
NotificationCompat.BigTextStyle,在细节部分显示一个大的文本块。
NotificationCompat.InboxStyle,在细节部分显示一段行文本。blog

Notification.Builder类中提供一个setProgress(int max,int progress,boolean indeterminate)方法用于设置进度条,max用于设定进度的最大数,progress用于设定当前的进度,indeterminate用于设定是不是一个肯定进度的进度条。经过indeterminate的设置,能够实现两种不一样样式的进度条,一种是有进度刻度的(true),一种是循环流动的(false)。

一种是有进度刻度的(false),一种是循环流动的(true
builder.setProgress(0, 0, true);//设置为true,表示流动
builder.setProgress(100, 100, false);//设置为false,表示刻度

RemoteViews contentViews = new RemoteViews(getPackageName(),
R.layout.custom_notification);
contentViews.setImageViewResource(R.id.imageNo, R.drawable.btm1);
contentViews.setTexViewText(R.id.titleNo, "xxx");
contentViews.setTexViewText(R.id.textNo, "xxx");

NotificationCompat.Builder.setContent(RemoteViews)

设定提示响应
对于有些通知,须要调用一些设备的资源,使用户能更快的发现有新通知,通常可设定的响应有:铃声、闪光灯、震动。对于这三个属性,NotificationCompat.Builder提供了三个方法设定:
可设定的响应有:铃声、闪光灯、震动

setSound(Uri sound):设定一个铃声,用于在通知的时候响应。传递一个Uri的参数,格式为“file:///mnt/sdcard/Xxx.mp3”。
setLights(int argb, int onMs, int offMs):设定前置LED灯的闪烁速率,持续毫秒数,停顿毫秒数。
setVibrate(long[] pattern):设定震动的模式,以一个long数组保存毫秒级间隔的震动。
  大多数时候,咱们并不须要设定一个特定的响应效果,只须要遵守用户设备上系统通知的效果便可,那么可使用setDefaults(int)方法设定默认响应参数,在Notification中,对它的参数使用常量定义了,咱们只需使用便可:

DEFAULT_ALL:铃声、闪光、震动均系统默认。
DEFAULT_SOUND:系统默认铃声。
DEFAULT_VIBRATE:系统默认震动。
DEFAULT_LIGHTS:系统默认闪光。


  而在Android中,若是须要访问硬件设备的话,是须要对其进行受权的,因此须要在清单文件AndroidManifest.xml中增长两个受权,分别授予访问振动器与闪光灯的权限:

1 <!-- 闪光灯权限 -->2 <uses-permission android:name="android.permission.FLASHLIGHT"/>3 <!-- 振动器权限 -->4 <uses-permission android:name="android.permission.VIBRATE"/>