通知功能可在應用程式處於閒置狀態時,提供簡短、及時且與應用程式相關的資訊。
Android 作業系統可控管通知的許多方面,但您可以控制其他面向。實作通知時,請按照下列步驟操作:
- 瞭解通知的構成元素。
- 請依您的用途選擇通知類型。
- 根據您選擇的通知類型設定對應的通知類別。
受迫失誤數
- 請思考通知的目的:您為何要通知使用者?
- 因此,請決定通知權限模式,思考通知對應用程式的重要性,以及使用者歷程中該詢問的方式。
- 選擇所需通知範本。
- 建立通知內容:
- 標題文字應簡述通知內容。
- 內容文字應預覽通知。
- 圖片內容 (如適用)。
- 媒體範本的媒體鍵和中繼資料。
- 根據內容提供動作,例如使用文字按鈕、輸入或媒體控制項,讓使用者清楚知道可以如何處理通知。
- 加入應用程式圖示並設定應用程式圖示背景顏色。
- 設定通知的頻道和類別。如此一來,系統和使用者就能自訂要接收的通知並提供優先行為。
- 如果您的應用程式可能會同時傳送數則通知,就是群組通知。
- 查看 Figma 上的 Android UI 套件以取得通知範本。
通知剖析
通知的設計宗旨,是讓使用者能夠輕鬆掃描,並使用通知最重要的元素。:
- 主要內容:此為通知中最顯眼的元素。時間戳記等次要資訊比較小,並整合在主要內容上方。
- 人物:如果通知與人物有關,顯示圖片就會與內容的其他部分有所出入。
- 動作:使用者可以輕觸指標圖示來展開通知。動作會以不同的背景顏色和位置顯示文字標籤。

通知標頭和內容
收合時,通知會顯示應用程式圖示、標頭文字、時間戳記、展開指標和內容文字。也可以視需要顯示大型圖示。

1 應用程式圖示:應用程式圖示是應用程式身分的 2D 表示法。通知內容會以單色顯示在狀態列中如果應用程式會傳送多種通知,請考慮將應用程式圖示換成符號,以區分不同的通知類型。詳情請參閱「套用圖示顏色」。
2 標題文字:通知或來源的簡短標題,例如使用者的帳戶名稱。內容是通知中最顯眼的元素。
3 時間戳記:表示通知的傳送時間,例如未接來電的時間。
4 展開指標:指出通知處於收合或展開狀態。
5 內容文字:輔助資訊。
6 大型圖示 (選填):您可以為圖片新增圖片,透過有意義的方式強化通知,例如訊息包含寄件者顯示圖片。
套用圖示顏色
從 Android 12 (API 級別 31) 開始,系統會從您在應用程式中設定的通知顏色衍生圖示顏色。如果應用程式未設定顏色,則使用系統主題顏色。先前顏色是灰色。

對於大多數樣式,只有在通知為前景服務通知時,系統才會套用這個顏色。不過,對於附加媒體工作階段的 MediaStyle
和 DecoratedMediaCustomViewStyle
通知,系統並沒有這類規定。
下列程式碼片段說明如何套用圖示顏色。
val notification = Notification.Builder()
.setColor(Color.GREEN)
.setColorized(true)
.setSmallIcon(R.drawable.app_icon)
.setStyle(Notification.DecoratedCustomViewStyle())
.build()
通知動作

1 文字按鈕動作
2 實心動作按鈕
3 建議的回覆
4 回覆文字欄位
從 Android 7.0 (API 級別 24) 開始,系統會顯示不含圖示的動作,以容納更多文字。為了配合 Android Wear 裝置和搭載 Android 6.0 (API 級別 23) 以下版本的裝置,應用程式仍須提供圖示。
展開的檢視畫面
您可以使用展開的檢視畫面,向使用者顯示更多資訊,而不需要離開通知。
展開通知後,通知最多可以提供下列任一類型的動作:
- 建議的回覆
- 強調操作 (藥丸形狀按鈕)
- 標準文字動作

錯誤做法

正確做法
允許在通知中輸入內容
您可以加入「回覆」動作,讓使用者直接在通知中輸入內容。這適用於輸入少量文字,例如回覆簡訊或撰寫簡短附註。
如要進行較長的輸入格式,請將使用者導向應用程式,讓他們有更多空間可以查看及編輯文字。
針對訊息應用程式,建議在使用者回覆回覆後保留通知,並等待對話暫停後,再自動關閉對話。

根據使用情形選擇通知類型
Google 會在 Android 應用程式中使用下列通知範本。這些範本可針對應用程式,提供一定程度的自訂。
查看 Figma 上的 Android UI 套件以取得通知範本。
標準範本
標準範本適用於大部分的通知,因此可提供簡潔的文字、大型圖示 (如適用) 和動作。

大型文字範本
大型文字範本適合用來顯示較長的文字區塊。這可讓使用者在展開通知後預覽更多文字。

大型圖片範本
大型圖片範本是專為含有圖片的通知而設計。通知收合時,通知會顯示圖片的大型圖示縮圖。展開後,通知會顯示較大的預覽畫面。

進度範本
進度範本是專為使用者啟動的活動而設計,這些活動需要一段時間才能完成。展開後,使用這個範本的通知會顯示進度列,同時也會包含可讓使用者終止該活動的「取消」動作。(不可取消的活動不願收到通知)。

媒體範本
媒體範本的設計旨在讓使用者控制目前透過應用程式播放的媒體。
- 通知收合時,最多可以顯示三個動作。大型圖示可顯示相關圖片,例如相簿封面。
- 展開通知時,通知最多會顯示 5 個具有較大圖片的操作,或顯示六個沒有圖片的操作。通知的背景和其他元素會自動繼承圖片的顏色。

訊息範本
MessagingStyle 範本是專為即時通訊而設計。展開後,使用這個範本的通知可讓使用者從通知中回覆訊息。

來電範本
使用 CallStyle 範本產生包含大型圖片附件的大型通知,並且指出有來電或撥出電話。

通知權限
由於通知可以及時傳達,大部分的通知都不符合豁免條件,也就是說,使用者必須同意接收來自應用程式的通知。
以下為例外情況:自 Android 13 (API 級別 33) 起,媒體工作階段和應用程式管理通話不受使用者同意要求。如果使用者已開啟通知功能,可能早現有的應用程式也可能符合資格。詳情請參閱「豁免資格」。
我們強烈建議您在設定中提供通知選項,讓使用者能更新通知偏好設定。
提示使用者選擇接收豁免通知
如果不是豁免通知,請提示使用者決定是否要接收通知。如果使用者明確選擇接收通知,可能會覺得訊息實用且幹擾程度較低。

等候顯示通知對話方塊提示:
- 說明通知的優點,以及不授予通知權限的結果。
- 提供內容相關的 UI,提供其功能的通知或影響的內容。這種 UI 可以使用任何形式,在應用程式中以最佳方式整合,例如費用、底部功能表或新手上路畫面中的資訊卡。這些狀態都應可關閉。
- 如果使用者已關閉 UI,請勿顯示通知權限對話方塊。
從 Android 13 開始,系統可能會再次提示使用者授予通知權限。
必要通知
前景服務執行的是使用者能察覺的作業,但在未直接與應用程式互動的情況下。這些服務會顯示狀態列通知,讓使用者瞭解應用程式正在前景執行工作及消耗系統資源。

由於這些程序會使用電池,甚至可能耗用資料,因此您的應用程式必須顯示無法關閉的通知,讓使用者瞭解這些程序。使用者無法關閉通知,因此您必須提供讓使用者停止服務的動作。
以下範例顯示健身應用程式的通知。使用者啟動了有效的健身工作階段,會將追蹤健身工作階段的前景服務執行個體化。應用程式會顯示通知指出正在追蹤步行,並提供查看健身活動的選項。
不使用通知的時機
請勿將通知用於下列任一用途:
- 針對其他產品的交叉宣傳或廣告 (Play 商店嚴格禁止這個行為)
- 如果使用者從未開啟您的應用程式
- 做為與使用者溝通的主要管道
- 鼓勵使用者返回應用程式,但並未提供直接價值 (例如「一段時間未見!」)
- 針對應用程式評分要求
- 針對不需要使用者操作的作業,例如同步處理資訊
- 可宣告錯誤狀態,應用程式可能會在使用者未進行互動的情況下,自動復原的錯誤狀態
- 假日或生日訊息

錯誤做法

錯誤做法
行為
請留意下列通知行為,以及如何在特定情境中處理通知。
收到通知
收到通知時,Android 會將通知新增至通知導覽匣。視您設定的參數和裝置目前的狀態而定,通知可能會執行下列任一動作:
- 發出音效或讓手機震動。
- 以圖示顯示在狀態列中;這通常是應用程式圖示,但如果您有多個類型的通知,請使用可以指出通知用途的符號。
- 顯示為抬頭通知,短暫顯示在目前的螢幕上,抓住使用者的注意力。
一如既往,使用者可以選擇變更您設定的通知行為。

1 狀態列中的通知指標,表示通知導覽匣中有通知。
2 通知在目前的畫面中「短暫跳轉」,在任務進行中吸引使用者的注意。
通知導覽匣
Android 中的通知導覽匣通常會依時間反向順序顯示通知,而通知會受到以下條件影響:
- 應用程式聲明的通知優先順序或重要性
- 該通知最近是否透過音效或震動通知使用者
- 任何與該通知連結的使用者,以及對方是否為標上星號的聯絡人
- 通知是否代表重要的持續性活動,例如通話中或音樂正在播放
- 由 Android 作業系統在清單頂端和底部調整部分通知的外觀,加入強調或淡化效果,協助使用者掃描內容
處理過時的通知
通知導覽匣旨在向使用者顯示目前時刻的相關資訊。如果先前的通知內容過時,已過時,請關閉通知,避免使用者看到。

應用程式圖示標記出現新通知
在搭載 Android 8.0 (API 等級 26) 以上版本的裝置所支援的啟動器中,應用程式圖示會顯示通知圓點,指出應用程式有相關聯的新通知。根據預設,這些點會顯示在支援這些點的啟動器應用程式中,因此應用程式無須採取任何行動。此外,您也可以停用及限制標記。

使用者可透過通知執行的動作
通知可讓使用者執行下列動作:
前往目的地:使用者可能會輕觸通知,進行導航。如果通知顯示在螢幕鎖定畫面中,使用者就必須輕觸兩下,然後輸入 PIN 碼、解鎖圖案或密碼。
使用者輕觸通知時,您的應用程式必須顯示與該通知直接相關的 UI,並讓使用者立即採取行動。例如,如果通知表示您正在進行雙人遊戲,則輕觸通知應直接導向該遊戲。
查看展開的通知檢視畫面:標頭中會顯示展開指標。使用者可以輕觸指標,或向下滑動通知內文來將其展開。
圖 18:展開通知 關閉通知 (如果已允許):使用者可以將通知向左或向右滑動即可關閉。
如果持續顯示的通知表示正在背景中繼續進行程序 (如播放音樂),則無法以滑動手勢關閉。
延後抬頭通知:使用者可以透過抬頭通知向上滑動,之後該事件的任何通知至少會閃爍一分鐘。
日後控管類似的通知:使用者可以透過以下方式存取通知控制項:
- 按住個別通知
- 向左或向右滑動通知,然後輕觸設定圖示
顯示的控制項會因 Android 版本及應用程式是否設有通知管道而異 (自 Android 8.0 版起)。
將多則通知分組
如果應用程式產生同一類型的多則通知,Android 會提供通知分組功能,避免使用者看到過多通知。
應用程式可根據下列階層顯示多則通知。
- 父項通知會顯示子通知的摘要。
- 如果使用者展開上層通知,Android 會顯示所有子項通知。
- 使用者可以展開兒童通知,顯示完整內容。
Android 顯示子通知,但不含重複的標頭資訊。舉例來說,如果子項通知的應用程式圖示與父項相同,則子項標頭不包含圖示。
如果子項通知顯示為個人內容,必須能夠理解,因為系統可能會在這類通知送達群組時,顯示這類通知。

設定
頻道
從 Android 8.0 (API 等級 26) 開始,所有通知都必須指派專屬管道。針對每個管道,您可以設定套用至該管道所有通知的視覺和聽覺行為。使用者可以變更這些設定,並決定應用程式的哪些通知管道容易侵入或顯示。
如要進一步瞭解如何實作通知,請參閱「建立及管理通知管道」。
選擇重要性時,應考量使用者的時間和注意力。當不重要的通知偽裝成緊急通知時,可能會產生不必要的鬧鐘。
重要 | 行為 | 使用方法 | 範例 |
---|---|---|---|
HIGH |
會發出音效並顯示在螢幕上 | 使用者必須立即知道或採取行動的重要時間資訊 | 簡訊、鬧鐘、來電 |
DEFAULT |
發出音效 | 使用者應能盡快看到資訊,不必打斷手續 | 路況快訊、工作提醒 |
LOW |
不發出音效 | 不符合其他重要性等級要求的通知管道 | 使用者訂閱的新內容、社群網路邀請 |
MIN |
不發出音效或顯示通知 | 可能會等待,或與使用者明確相關的非必要資訊 | 附近觀光景點、天氣、宣傳內容 |
預先定義的類別
無論您是否使用管道,請將每則通知指派至最適當的預先定義類別。Android 可能會根據這項資訊進行排名和篩選決策。
類別 | 說明 |
---|---|
CATEGORY_CALL |
來電 (語音或視訊) 或類似的同步通訊要求 |
CATEGORY_MESSAGE |
外來的直接訊息 (簡訊、即時訊息等) |
CATEGORY_EMAIL |
非同步大型訊息 (電子郵件) |
CATEGORY_EVENT |
日曆活動 |
CATEGORY_PROMO |
促銷訊息或廣告 |
CATEGORY_ALARM |
鬧鐘或計時器 |
CATEGORY_PROGRESS |
長期執行的背景作業進度 |
CATEGORY_SOCIAL |
社交網路或分享更新 |
CATEGORY_ERROR |
背景作業或驗證狀態錯誤 |
CATEGORY_TRANSPORT |
用於播放的媒體傳輸控制 |
CATEGORY_SYSTEM |
系統或裝置狀態更新。留作系統用途。 |
CATEGORY_SERVICE |
執行背景服務的指示 |
CATEGORY_RECOMMENDATION |
針對單一事物的即時具體建議。舉例來說,新聞應用程式可能針對使用者的興趣,提出下一則可閱讀的新聞報導建議 |
CATEGORY_STATUS |
關於裝置或相關內容狀態的持續性資訊 |
螢幕鎖定通知
如果使用者選擇在螢幕鎖定時顯示通知,這類通知可能會隱藏應用程式標示為機密的內容。Android 會評估每則通知的瀏覽權限層級,決定哪些內容可以安全顯示。
針對螢幕鎖定畫面上的內容設定敏感程度
對使用者隱私至關重要,因此請注意,螢幕鎖定畫面上會顯示不同層級的通知。對於您建立的每則通知,您都必須將瀏覽權限層級設為「public、private」或「secret」。
- 公開通知會完整顯示在安全的螢幕鎖定畫面中。
- 已隱藏密鑰通知。
- 「私人」通知落在中間:只顯示基本資訊,包括發布應用程式的名稱和圖示。您可以選擇顯示不會透露個人資訊的文字,例如
2 new messages
,而非一般內容。
在以下範例中,使用者選擇在螢幕鎖定畫面上顯示這些資訊後,Gmail 和相簿應用程式的螢幕鎖定畫面通知就會顯示所有內容。

1 螢幕鎖定畫面顯示的所有通知內容
2 在螢幕鎖定畫面上顯示敏感通知內容
樣式
清晰精簡的文字
Android 會將內容標題截斷成一行 (即使展開也一樣)。
優質的內容標題應符合下列規範:
- 不得超過 30 個字元
- 包含最重要的資訊
- 避免變數 (除非其中包含數字或簡短文字字串,或前方為文字)
- 排除顯示在標題中的應用程式名稱

錯誤做法

正確做法
優質內容文字必須符合下列規範:
- 避免超過 40 個半形字元的限制
- 避免內容標題內容重複
大型圖示
如果圖像能大幅強化通知內容,請使用大型圖示。例如:
- 他人的通訊內容,例如有人傳送訊息的圖片
- 內容來源與傳送通知的應用程式不同,例如使用者訂閱的 YouTube 頻道的標誌
- 與通知相關的有意義的符號,例如用於行車路線的箭頭符號
大型圖示在顯示人物時必須是圓形,但在所有其他情況下則為正方形。

錯誤做法

正確做法
Android 版本更新
Android 通知系統 UI 和通知相關的 API 會持續演進。如需這些異動的清單,請參閱通知相容性。
平台注意事項
Wear
如果使用者擁有已配對的 Wear OS 裝置,則所有通知都會自動顯示在該裝置上,包括可展開的詳細資料和動作按鈕。詳情請參閱 Wear 通知的設計頁面。