Android 通知之 Notification


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

 

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

 

小圖標,使用setSamllIcon()方法設置。
標題,使用setContentTitle()方法設置。
文本內容,使用setContentText()方法設置。

PendingIntent提供了多個靜態的getXxx()方法,用於獲得適用於不同場景的PendingIntent對象。一般需要傳遞的幾個參數都很常規,只介紹一個flag參數,用於標識PendingIntent的構造選擇:
FLAG_CANCEL_CURRENT:如果構建的PendingIntent已經存在,則取消前一個,重新構建一個。
FLAG_NO_CREATE:如果前一個PendingIntent已經不存在了,將不再構建它。
FLAG_ONE_SHOT:表明這里構建的PendingIntent只能使用一次。
FLAG_UPDATE_CURRENT:如果構建的PendingIntent已經存在,則替換它,常用。

Notification視覺風格
  Notification有兩種視覺風格,一種是標准視圖(Normal view)、一種是大視圖(Big view)。標准視圖在Android中各版本是通用的,但是對於大視圖而言,僅支持Android4.1+的版本。

從官方文檔了解到,一個標准視圖顯示的大小要保持在64dp高,寬度為屏幕標准。
標准視圖的通知主體內容有一下幾個:
1.通知標題。
2.大圖標。
3.通知內容。
4.通知消息。
5.小圖標。
6.通知的時間,一般為系統時間,也可以使用setWhen()設置。

而對於大視圖(Big View)而言,它的細節區域只能顯示256dp高度的內容,並且只對Android4.1+之后的設備才支持,它比標准視圖不一樣的地方,均需要使用setStyle()方法設定

setStyle()傳遞一個NotificationCompat.Style對象,它是一個抽象類,Android為我們提供了三個實現類,用於顯示不同的場景。分別是:

setStyle()傳遞一個NotificationCompat.Style對象,它是一個抽象類,Android為我們提供了三個實現類,用於顯示不同的場景。分別是:

NotificationCompat.BigPictureStyle, 在細節部分顯示一個256dp高度的位圖。
NotificationCompat.BigTextStyle,在細節部分顯示一個大的文本塊。
NotificationCompat.InboxStyle,在細節部分顯示一段行文本。

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM