應用程式處於閒置狀態時,通知功能會提供簡短、即時且相關的資訊。
Android 作業系統會控管通知的許多層面,但您仍可控管其他層面。實作通知時,請按照下列步驟操作:
- 瞭解通知的結構。
- 根據用途選擇通知類型。
- 設定與所選通知類型相符的通知類別。
重點整理
- 請考量通知的目的:您為何要提醒使用者?
- 決定通知權限模式、考量通知對應用程式的重要性,以及在使用者歷程中的哪個階段要求權限。
- 選擇通知範本。
- 建立通知內容:
- 標題文字應簡要總結通知內容。
- 內容文字應預覽通知。
- 如果適用於應用程式內容,請提供圖片內容。
- 媒體範本的媒體主視覺和中繼資料。
- 根據使用者內容提供動作,例如文字按鈕、輸入或媒體控制項,讓使用者清楚瞭解通知的用途。
- 加入應用程式圖示,並設定應用程式圖示背景顏色。
- 設定通知的管道和類別。這樣一來,系統和使用者就能自訂要接收的通知,並提供優先順序行為。
- 如果應用程式可能會一次傳送多則通知,請將通知分組。
- 如需通知範本,請參閱 Figma 上的 Android UI Kit。
通知剖析
通知的設計宗旨是讓使用者輕鬆瀏覽及使用通知最重要的元素。:
- 主要內容:這是通知中最顯眼的元素。次要資訊 (例如時間戳記) 會縮小,並整合在主要內容上方。
- 人物:如果通知與人物有關,虛擬人偶會從其他內容中脫穎而出。
- 操作:使用者可以輕觸指標圖示展開通知。動作會顯示在不同背景顏色和位置,並附上文字標籤。
通知標題和內容
收合時,通知會顯示應用程式圖示、標題文字、時間戳記、展開指標和內容文字。也可以選擇顯示大型圖示。
1 應用程式圖示:應用程式圖示是應用程式身分的二維呈現方式。狀態列會以單色顯示。如果應用程式會傳送各種通知,建議您改用符號取代應用程式圖示,以便區分不同類型的通知。詳情請參閱「套用圖示顏色」。
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 Kit。
標準範本
標準範本適用於大多數通知,可顯示簡潔的文字、大型圖示 (如適用) 和動作。
大型文字範本
大型文字範本適合顯示較長的文字區塊。使用者展開通知後,即可預覽更多文字。
大圖片範本
大型圖片範本適用於含有圖片的通知。通知收合時,會顯示圖片的大型圖示縮圖。展開通知後,預覽畫面會放大顯示。
進度範本
進度範本適用於使用者發起的活動,這類活動需要一段時間才能完成。展開後,使用這個範本的通知會顯示進度列,並包含「取消」動作,讓使用者終止這項活動。(無法取消的活動不會觸發通知)。
媒體範本
媒體範本的設計目的是讓使用者控制應用程式目前播放的媒體。
- 通知收合時,最多可顯示三項動作。大型圖示可顯示相關圖片,例如專輯封面。
- 展開後,通知會顯示最多五個動作和較大的圖片,或六個動作 (不含圖片)。通知的背景和其他元素會自動沿用圖片的顏色。
訊息範本
MessagingStyle 範本專為即時通訊而設計,展開後,使用此範本的通知可讓使用者在通知內回覆訊息。
通話範本
使用 CallStyle 範本產生大型格式通知,其中包含大型圖片附件,並指出來電或撥出電話。
通知權限
雖然通知可以及時提供實用資訊,但大多數通知都不屬於豁免類別,也就是說,使用者必須同意接收應用程式的通知。
但有一項例外:自 Android 13 (API 級別 33) 起,媒體工作階段和管理電話的應用程式無須徵求使用者同意。如果使用者已啟用通知功能,現有應用程式也可能符合資格。詳情請參閱「豁免」一文。
強烈建議您在應用程式設定中提供通知選項,讓使用者更新通知偏好設定。
提示使用者選擇接收非豁免通知
對於非豁免通知,請提示使用者是否要選擇接收通知。使用者明確選擇接收通知,表示他們可能覺得通知實用且干擾較小。
等待顯示通知對話方塊提示:
- 說明通知的好處,以及不授予通知權限的影響。
- 提供與通知相關的 UI,將通知與功能或影響的項目建立關聯。這個 UI 可以採取任何形式,以便在應用程式中妥善整合,例如費用中的資訊卡、底部功能表或新手上路畫面。這些通知都應該可以關閉。
- 如果使用者已關閉 UI,請勿顯示通知權限對話方塊。
從 Android 13 開始,系統可能會再次提示使用者授予通知權限。
必要通知
前景服務執行的作業可為使用者察覺,但使用者並未直接與應用程式互動。這類服務會顯示狀態列通知,讓使用者瞭解應用程式正在前景執行工作及消耗系統資源。
由於這些程序會耗用電池電量,且可能使用數據網路,因此應用程式必須顯示無法關閉的通知,讓使用者瞭解這些程序。使用者無法關閉通知,因此您必須提供動作,讓使用者停止服務。
以下範例顯示健身應用程式的通知。使用者已啟動運動工作階段,這會例項化前景服務,追蹤運動工作階段。應用程式會顯示通知,指出正在追蹤步行活動,並提供查看運動的選項。
不應使用通知的情況
請勿將通知用於下列用途:
- 交叉宣傳或宣傳其他產品 (Play 商店嚴格禁止此類行為)
- 如果使用者從未開啟您的應用程式
- 做為與使用者溝通的主要方式
- 鼓勵使用者返回應用程式,但未提供直接價值 (例如「好久不見!」)
- 要求對應用程式評分
- 不需要使用者參與的操作,例如同步資訊
- 用於發布應用程式可自行復原的錯誤狀態
- 節慶或生日訊息
錯誤做法
錯誤做法
行為
請注意下列通知行為,以及如何在特定情況下處理通知。
收到通知
Android 收到通知後,會將其新增至通知匣。 視您設定的參數和裝置目前狀態而定,通知可能會執行下列任一動作:
- 發出音效或震動。
- 在狀態列中顯示圖示;這通常是您的應用程式圖示,但如果您有多種通知類型,請使用可代表通知用途的符號。
- 以看路提醒頭通知的形式顯示,在目前畫面上顯示一小部分內容,吸引使用者注意。
與以往相同,使用者可以選擇變更您設定的通知行為。
1 狀態列中的通知指標,表示通知導覽匣中有通知。
2 通知「偷看」目前畫面,在使用者執行工作時吸引他們的注意力。
通知匣
Android 的通知匣通常會依時間先後順序顯示通知,並根據下列情況調整:
- 應用程式聲明的通知優先順序或重要性
- 通知最近是否曾發出音效或震動來提醒使用者
- 任何與該通知連結的使用者,以及對方是否為標上星號的聯絡人
- 通知是否代表重要的進行中活動,例如通話中或正在播放音樂
- Android OS 會在清單頂端和底部加上強調或弱化效果,改變部分通知的外觀,協助使用者掃描內容
處理過時通知
通知匣的設計宗旨是向使用者顯示當下相關資訊。如果先前的通知過時 (不再相關),請關閉通知,以免使用者看到。
應用程式圖示上的標記會顯示新通知
在搭載 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 會評估每則通知的顯示等級,判斷可安全顯示的內容。
設定螢幕鎖定畫面上顯示內容的敏感程度
使用者隱私權至關重要,因此請注意,鎖定畫面上可顯示不同層級的通知。您建立的每則通知都必須將瀏覽權限設為公開、私人或私密。
- 公開通知會完整顯示在安全螢幕鎖定畫面上。
- 私密通知會隱藏。
- 私人通知則介於兩者之間,只會顯示基本資訊,包括發布通知的應用程式名稱和圖示。您可以選擇顯示不會揭露個人資訊的文字,例如
2 new messages,取代隱藏的一般內容。
在下列範例中,使用者選擇在螢幕鎖定時顯示資訊後,Gmail 和相簿應用程式的螢幕鎖定通知就會顯示所有內容。
1 螢幕鎖定畫面上顯示所有通知內容
2 螢幕鎖定畫面會隱藏含有私密資訊的通知內容
樣式
簡明扼要的文字
Android 會將內容標題截斷為一行 (即使展開也是如此)。
優質的內容標題應符合下列規範:
- 不超過 30 個字元
- 包含最重要的資訊
- 避免使用變數 (除非變數包含數字或簡短的文字字串,或前面有文字)
- 不含應用程式名稱,因為標題中已顯示
錯誤做法
正確做法
優質內容文字應符合下列規範:
- 避免超過 40 個字元的限制
- 避免重複內容標題中的資訊
大型圖示
如果圖片能有效強化通知內容,請使用大圖示。例如:
- 其他人的通訊內容,例如傳送訊息者的圖片
- 內容來源 (如果與傳送通知的應用程式不同),例如使用者訂閱的 YouTube 頻道標誌
- 與通知相關的實用符號,例如行車路線的箭頭符號
顯示人物的大型圖示必須是圓形,其他情況則為正方形。
錯誤做法
正確做法
Android 版本更新
Android 通知系統的 UI 和通知相關 API 不斷演進。如要查看這些變更的清單,請參閱通知相容性。
平台注意事項
Wear
如果使用者擁有已配對的 Wear OS 裝置,則所有通知都會自動顯示在該裝置上,包括可展開的詳細資料和動作按鈕。詳情請參閱「Wear 通知設計頁面」。