Android 上的本機通知- Xamarin - Microsoft Learn
文章推薦指數: 80 %
Android 5.0 中引進了可見度和類別,在舊版Android 中無法使用。
從Android 8.0 開始, 通知通道 是用來控制通知向使用者呈現的方式。
展開的版面配置. 從 ...
跳到主要內容
已不再支援此瀏覽器。
請升級至MicrosoftEdge,以利用最新功能、安全性更新和技術支援。
下載MicrosoftEdge
InternetExplorer和MicrosoftEdge的詳細資訊
目錄
結束焦點模式
閱讀英文
儲存
目錄
閱讀英文
儲存
列印
Twitter
LinkedIn
Facebook
電子郵件
目錄
Android上的本機通知
發行項
09/21/2022
8位參與者
本文內容
本節說明如何在Xamarin.Android中實作本機通知。
它會說明Android通知的各種UI元素,並討論與建立和顯示通知相關的API。
本機通知概觀
Android提供兩個系統控制的區域,可向使用者顯示通知圖示和通知資訊。
第一次發佈通知時,其圖示會顯示在通知區域中,如下列螢幕擷取畫面所示:
若要取得通知的詳細資料,使用者可以開啟通知選單(展開每個通知圖示,以顯示通知內容)並執行與通知相關聯的任何動作。
下列螢幕擷取畫面顯示對應至上方顯示之通知區域的通知選單:
Android通知使用兩種類型的版面配置:
基底版面配置–精簡、固定的簡報格式。
展開的版面配置–可擴充為較大大小的簡報格式,以顯示更多資訊。
下列各節將說明這些配置類型(以及如何建立)。
注意
本指南著重于Android支援程式庫中的NotificationCompatAPI。
這些API可確保Android4.0(API層級14)的最大回溯相容性。
基底版面配置
所有Android通知都是以基本版面配置格式為基礎建置,至少包含下列元素:
通知圖示,代表原始應用程式,如果應用程式支援不同類型的通知,則為通知類型。
通知標題,如果通知是個人訊息,則為寄件者的名稱。
通知訊息。
時間戳記。
下圖顯示這些專案:
基底版面配置限制為高度(dp)的64個密度獨立圖元。
Android預設會建立此基本通知樣式。
或者,通知可以顯示代表應用程式或寄件者相片的大型圖示。
在Android5.0和更新版本的通知中使用大型圖示時,小型通知圖示會顯示為大型圖示的徽章:
從Android5.0開始,通知也可以出現在鎖定畫面上:
使用者可以按兩下鎖定畫面通知來解除鎖定裝置,並跳至源自該通知的應用程式,或撥動以關閉通知。
應用程式可以設定通知的可見度層級,以控制鎖定畫面上顯示的內容,而且使用者可以選擇是否允許鎖定畫面通知中顯示的敏感性內容。
Android5.0引進了一種高優先順序的通知簡報格式,稱為「頭部向上」。
頭部通知會從畫面頂端向下滑動幾秒,然後重新回到通知區域:
頭部通知可讓系統UI將重要資訊放在使用者前面,而不會中斷目前執行中活動的狀態。
Android包含通知中繼資料的支援,以便以智慧方式排序和顯示通知。
通知中繼資料也會控制通知在鎖定畫面和向上格式呈現的方式。
應用程式可以設定下列類型的通知中繼資料:
優先順序–優先順序層級會決定通知的呈現方式和時機。
例如,在Android5.0中,高優先順序通知會顯示為「頭頭通知」。
可見度–指定當通知出現在鎖定畫面時,要顯示多少通知內容。
類別–通知系統如何在各種情況下處理通知,例如當裝置處於「不要打擾」模式時。
注意
Android5.0中引進了可見度和類別,在舊版Android中無法使用。
從Android8.0開始,通知通道是用來控制通知向使用者呈現的方式。
展開的版面配置
從Android4.1開始,您可以使用展開的配置樣式來設定通知,讓使用者能夠展開通知的高度,以檢視更多內容。
例如,下列範例說明合約模式中的展開版面配置通知:
當此通知展開時,它會顯示整個訊息:
Android支援三種展開的版面配置樣式,用於單一事件通知:
巨量文字–在合約模式中,會顯示訊息第一行的摘錄,後面接著兩個句點。
在展開模式中,會顯示整個訊息(,如上述範例所示)。
收件匣–在合約模式中,顯示新訊息的數目。
在展開模式中,顯示收件匣中的第一封電子郵件或郵寄清單。
影像–在合約模式中,只會顯示郵件內文。
在展開模式中,顯示文字和影像。
除了本文稍後的基本通知()說明如何建立巨量文字、收件匣和影像通知。
通知通道
從Android8.0(Oreo)開始,您可以使用通知通道功能,為您想要顯示的每種通知類型建立使用者可自訂的通道。
通知通道可讓您將通知分組,讓所有張貼至通道的通知都呈現相同的行為。
例如,您可能有一個通知通道,其適用于需要立即注意的通知,以及用於參考訊息的個別「無訊息」通道。
隨AndroidOreo一起安裝的YouTube應用程式會列出兩個通知類別:下載通知和一般通知:
每個類別都對應至通知通道。
YouTube應用程式會實作下載通知頻道和一般通知通道。
使用者可以點選[下載通知],以顯示應用程式下載通知通道的設定畫面:
在此畫面中,使用者可以執行下列動作來修改下載通知通道的行為:
將[重要性等級]設定為[緊急]、[高]、[中]或[低],以設定音效和視覺中斷層級。
開啟或關閉通知點。
開啟或關閉閃爍的光線。
在鎖定畫面上顯示或隱藏通知。
覆寫[不要打擾]設定。
一般通知通道具有類似的設定:
請注意,您對於通知通道與使用者互動的方式沒有絕對控制權–使用者可以修改裝置上任何通知通道的設定,如上述螢幕擷取畫面所示。
不過,您可以設定預設值(,如下所述)。
如這些範例所示,新的通知通道功能可讓您更精細地控制不同類型的通知。
通知建立
若要在Android中建立通知,請使用Xamarin.Android.Support.v4NuGet套件中的NotificationCompat.Builder類別。
這個類別可讓您在舊版Android上建立和發佈通知。
NotificationCompat.Builder也會討論。
NotificationCompat.Builder提供在通知中設定各種選項的方法,例如:
內容,包括標題、郵件內文和通知圖示。
通知的樣式,例如巨量文字、收件匣或影像樣式。
通知的優先順序:最小值、低、預設、高或最大值。
在Android8.0和更新版本上,優先順序是透過通知通道來設定。
鎖定畫面上通知的可見度:公用、私人或秘密。
可協助Android分類和篩選通知的類別中繼資料。
選擇性意圖,指出點選通知時要啟動的活動。
通知通道的識別碼,通知將在android8.0和更新版本(上發佈)。
在產生器中設定這些選項之後,您會產生包含設定的通知物件。
若要發佈通知,請將此通知物件傳遞至通知管理員。
Android提供NotificationManager類別,負責發佈通知並向使用者顯示通知。
您可以從任何內容取得此類別的參考,例如活動或服務。
建立通知通道
在Android8.0上執行的應用程式必須為其通知建立通知通道。
通知通道需要下列三項資訊:
識別通道之封裝唯一的識別碼字串。
將向使用者顯示的通道名稱。
名稱必須介於一到40個字元之間。
通道的重要性。
應用程式必須檢查其正在執行的Android版本。
執行Android8.0舊版的裝置不應建立通知通道。
下列方法是如何在活動中建立通知通道的其中一個範例:
voidCreateNotificationChannel()
{
if(Build.VERSION.SdkInt
因為SetCategoryAPI層級21和更新版本中可用,所以此範例程式碼只會在可用時呼叫,而不會在API層級小於21時呼叫SetCategorySetCategory。
鎖定螢幕可見度
因為Android不支援在Android5.0(API層級21)之前鎖定螢幕通知,NotificationCompat.Builder所以不支援SetVisibility方法。
SetCategory如上所述,您的程式碼可以在執行時間檢查API層級,並只在可用時呼叫SetVisiblity:
if(Android.OS.Build.VERSION.SdkInt>=Android.OS.BuildVersionCodes.Lollipop){
builder.SetVisibility(Notification.Public);
}
總結
本文說明如何在Android中建立本機通知。
它描述通知的結構、說明如何使用NotificationCompat.Builder來建立通知、如何設定大型圖示、巨量文字、影像和收件匣格式的通知樣式、如何設定通知中繼資料設定,例如優先順序、可見度和類別,以及如何從通知啟動活動。
本文也說明這些通知設定如何與Android5.0中引進的新頭、鎖定畫面和不要打擾功能搭配運作。
最後,您已瞭解如何使用NotificationCompat.Builder來維護與舊版Android的通知相容性。
如需設計Android通知的指導方針,請參閱通知。
相關連結
NotificationsLab(範例)
LocalNotifications(範例)
Android中的本機通知逐步解說
通知使用者
通知
NotificationManager
NotificationCompat.Builder
PendingIntent
本文內容
延伸文章資訊
- 1Android 上的本機通知- Xamarin - Microsoft Learn
Android 5.0 中引進了可見度和類別,在舊版Android 中無法使用。 從Android 8.0 開始, 通知通道 是用來控制通知向使用者呈現的方式。 展開的版面配置. 從 ...
- 2Android Koltin 實作Day 15:Notification ... - iT 邦幫忙
從API 26 開始,Android 多了通知頻道(Notification channels)的功能, ... 彈出提醒、音效及震動),不顯示在狀態欄,僅顯示在展開的通知欄中。
- 3android的消息通知栏 - 阿里云开发者社区
下面就来说说经常会使用到通知机制中的通知栏框架(Notificaiton),它适用于交互事件的通知。它是位于顶层可以展开的通知列表。它会时不时的提醒你什么软件该更新了, ...
- 4Android通知Notification使用全解析,看这篇就够了
通知是Android 在您的应用UI 之外显示的消息,用于向用户提供提醒、来自 ... 用户可以向下拖动抽屉中的通知以显示展开的视图,该视图显示其他内容和 ...
- 5Android 如何顯示通知訊息(Notifications)? - MagicLen
通知是開發Android App很重要的一環,尤其是在Android 5.0之後更為重要。 ... 要的,當Style並未被Android展開(Expend)時(通常只有最上方的通知會被 ...