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"/>

相關文章
相關標籤/搜索