通知

應用程式處於閒置狀態時,通知功能會提供簡短、即時且相關的資訊。

Android 作業系統會控管通知的許多層面,但您仍可控管其他層面。實作通知時,請按照下列步驟操作:

  1. 瞭解通知的結構。
  2. 根據用途選擇通知類型。
  3. 設定與所選通知類型相符的通知類別。

重點整理

  • 請考量通知的目的:您為何要提醒使用者?
  • 決定通知權限模式、考量通知對應用程式的重要性,以及在使用者歷程中的哪個階段要求權限。
  • 選擇通知範本。
  • 建立通知內容:
    • 標題文字應簡要總結通知內容。
    • 內容文字應預覽通知。
    • 如果適用於應用程式內容,請提供圖片內容。
    • 媒體範本的媒體主視覺和中繼資料。
  • 根據使用者內容提供動作,例如文字按鈕、輸入或媒體控制項,讓使用者清楚瞭解通知的用途。
  • 加入應用程式圖示,並設定應用程式圖示背景顏色。
  • 設定通知的管道和類別。這樣一來,系統和使用者就能自訂要接收的通知,並提供優先順序行為。
  • 如果應用程式可能會一次傳送多則通知,請將通知分組。
  • 如需通知範本,請參閱 Figma 上的 Android UI Kit

通知剖析

通知的設計宗旨是讓使用者輕鬆瀏覽及使用通知最重要的元素。:

  • 主要內容:這是通知中最顯眼的元素。次要資訊 (例如時間戳記) 會縮小,並整合在主要內容上方。
  • 人物:如果通知與人物有關,虛擬人偶會從其他內容中脫穎而出。
  • 操作:使用者可以輕觸指標圖示展開通知。動作會顯示在不同背景顏色和位置,並附上文字標籤。
圖 1:已收合的通知

通知標題和內容

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

圖 2:通知標題區域

1 應用程式圖示:應用程式圖示是應用程式身分的二維呈現方式。狀態列會以單色顯示。如果應用程式會傳送各種通知,建議您改用符號取代應用程式圖示,以便區分不同類型的通知。詳情請參閱「套用圖示顏色」。

2 標題文字:通知或來源的簡短標題,例如使用者的帳戶名稱。內容是通知中最顯眼的元素。

3 時間戳記:指出通知的傳送時間,例如未接來電的時間。

4 展開指標:指出通知處於收合或展開狀態。

5 內容文字:輔助資訊。

6 大型圖示 (選用):可加入圖片,以有意義的方式強化通知,例如包含傳送者顯示圖片的訊息。

套用圖示顏色

自 Android 12 (API 級別 31) 起,系統會根據您在應用程式中設定的通知顏色,衍生出圖示顏色。如果應用程式未設定顏色,系統會使用系統主題顏色。先前為灰色。

圖 3:產生的樣式化應用程式圖示顏色

對於大多數樣式,系統只會在通知屬於前景服務通知時套用這個顏色。不過,如果 MediaStyleDecoratedMediaCustomViewStyle 通知附加媒體工作階段,則不適用這項規定。

以下程式碼片段顯示如何套用圖示顏色。

val notification = Notification.Builder()
    .setColor(Color.GREEN)
    .setColorized(true)
    .setSmallIcon(R.drawable.app_icon)
    .setStyle(Notification.DecoratedCustomViewStyle())
    .build()

通知動作

圖 4:通知動作區域

1 文字按鈕動作

2 填滿型動作按鈕

3 建議的回覆內容

4 回覆文字欄位

從 Android 7.0 (API 級別 24) 開始,系統會顯示沒有圖示的動作,以便容納更多文字。為配合 Android Wear 裝置和搭載 Android 6.0 (API 級別 23) 以下版本的裝置,應用程式仍須提供圖示。

展開檢視畫面

您可以透過展開檢視畫面,向使用者顯示更多資訊,不必離開通知。

展開通知時,最多可提供三種動作,包括:

  • 建議的回覆
  • 強調動作 (藥丸形按鈕)
  • 標準文字動作
加入文字動作,複製輕觸通知主體的行為。
讓使用者有機會與通知互動。Google 時鐘應用程式會顯示正在執行的計時器,但使用者可以直接從通知暫停計時器或新增一分鐘。

啟用通知中的輸入功能

只要加入「回覆」動作,使用者就能直接在通知中輸入文字。這項功能適用於輸入少量文字,例如回覆簡訊或撰寫簡短記事。

如需輸入較長的文字,請將使用者導向您的應用程式,讓他們有更多空間可查看及編輯文字。

如果是訊息應用程式,建議在使用者傳送回覆後保留通知,並等到對話暫停後再自動關閉通知。

圖 5:使用者輕觸「回覆」後,直接在 Android 訊息中回覆,不必離開通知。

根據用途選擇通知類型

Google Android 應用程式會使用下列通知範本。這些範本可供您在一定程度上自訂應用程式。

如需通知範本,請前往 Figma 的 Android UI Kit。

標準範本

標準範本適用於大多數通知,可顯示簡潔的文字、大型圖示 (如適用) 和動作。

圖 6:標準通知範本

大型文字範本

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

圖 7:大字體範本,附有大型圖示選項

大圖片範本

大型圖片範本適用於含有圖片的通知。通知收合時,會顯示圖片的大型圖示縮圖。展開通知後,預覽畫面會放大顯示。

圖 8:大圖片範本

進度範本

進度範本適用於使用者發起的活動,這類活動需要一段時間才能完成。展開後,使用這個範本的通知會顯示進度列,並包含「取消」動作,讓使用者終止這項活動。(無法取消的活動不會觸發通知)。

圖 9:進度範本

媒體範本

媒體範本的設計目的是讓使用者控制應用程式目前播放的媒體。

  • 通知收合時,最多可顯示三項動作。大型圖示可顯示相關圖片,例如專輯封面。
  • 展開後,通知會顯示最多五個動作和較大的圖片,或六個動作 (不含圖片)。通知的背景和其他元素會自動沿用圖片的顏色。
圖 10:媒體範本

訊息範本

MessagingStyle 範本專為即時通訊而設計,展開後,使用此範本的通知可讓使用者在通知內回覆訊息。

圖 11:訊息範本

通話範本

使用 CallStyle 範本產生大型格式通知,其中包含大型圖片附件,並指出來電或撥出電話。

圖 12:通話範本

通知權限

雖然通知可以及時提供實用資訊,但大多數通知都不屬於豁免類別,也就是說,使用者必須同意接收應用程式的通知。

但有一項例外:自 Android 13 (API 級別 33) 起,媒體工作階段和管理電話的應用程式無須徵求使用者同意。如果使用者已啟用通知功能,現有應用程式也可能符合資格。詳情請參閱「豁免」一文。

強烈建議您在應用程式設定中提供通知選項,讓使用者更新通知偏好設定

提示使用者選擇接收非豁免通知

對於非豁免通知,請提示使用者是否要選擇接收通知。使用者明確選擇接收通知,表示他們可能覺得通知實用且干擾較小。

圖 13:要求使用者同意接收非豁免通知

等待顯示通知對話方塊提示:

  • 說明通知的好處,以及不授予通知權限的影響。
  • 提供與通知相關的 UI,將通知與功能或影響的項目建立關聯。這個 UI 可以採取任何形式,以便在應用程式中妥善整合,例如費用中的資訊卡、底部功能表或新手上路畫面。這些通知都應該可以關閉。
  • 如果使用者已關閉 UI,請勿顯示通知權限對話方塊。

從 Android 13 開始,系統可能會再次提示使用者授予通知權限。

必要通知

前景服務執行的作業可為使用者察覺,但使用者並未直接與應用程式互動。這類服務會顯示狀態列通知,讓使用者瞭解應用程式正在前景執行工作及消耗系統資源。

圖 14:健身應用程式前景服務通知範例

由於這些程序會耗用電池電量,且可能使用數據網路,因此應用程式必須顯示無法關閉的通知,讓使用者瞭解這些程序。使用者無法關閉通知,因此您必須提供動作,讓使用者停止服務。

以下範例顯示健身應用程式的通知。使用者已啟動運動工作階段,這會例項化前景服務,追蹤運動工作階段。應用程式會顯示通知,指出正在追蹤步行活動,並提供查看運動的選項。

不應使用通知的情況

請勿將通知用於下列用途:

  • 交叉宣傳或宣傳其他產品 (Play 商店嚴格禁止此類行為)
  • 如果使用者從未開啟您的應用程式
  • 做為與使用者溝通的主要方式
  • 鼓勵使用者返回應用程式,但未提供直接價值 (例如「好久不見!」)
  • 要求對應用程式評分
  • 不需要使用者參與的操作,例如同步資訊
  • 用於發布應用程式可自行復原的錯誤狀態
  • 節慶或生日訊息
以通知的形式傳送節慶或生日祝福。
在使用者執行工作時打斷對方,只為了詢問你是否做得很好。

行為

請注意下列通知行為,以及如何在特定情況下處理通知。

收到通知

Android 收到通知後,會將其新增至通知匣。 視您設定的參數和裝置目前狀態而定,通知可能會執行下列任一動作:

  • 發出音效或震動。
  • 在狀態列中顯示圖示;這通常是您的應用程式圖示,但如果您有多種通知類型,請使用可代表通知用途的符號。
  • 以看路提醒頭通知的形式顯示,在目前畫面上顯示一小部分內容,吸引使用者注意。

與以往相同,使用者可以選擇變更您設定的通知行為。

圖 15:通知送達

1 狀態列中的通知指標,表示通知導覽匣中有通知。

2 通知「偷看」目前畫面,在使用者執行工作時吸引他們的注意力。

通知匣

Android 的通知匣通常會依時間先後順序顯示通知,並根據下列情況調整:

  • 應用程式聲明的通知優先順序或重要性
  • 通知最近是否曾發出音效或震動來提醒使用者
  • 任何與該通知連結的使用者,以及對方是否為標上星號的聯絡人
  • 通知是否代表重要的進行中活動,例如通話中或正在播放音樂
  • Android OS 會在清單頂端和底部加上強調或弱化效果,改變部分通知的外觀,協助使用者掃描內容

處理過時通知

通知匣的設計宗旨是向使用者顯示當下相關資訊。如果先前的通知過時 (不再相關),請關閉通知,以免使用者看到。

圖 16:剛收到的訊息會顯示在通知匣頂端,而新增相片的通知優先順序較低,因此會顯示在底部

應用程式圖示上的標記會顯示新通知

在搭載 Android 8.0 (API 等級 26) 以上版本的裝置所支援的啟動器中,應用程式圖示會顯示通知圓點,指出應用程式有新的相關通知。支援這類點的啟動器應用程式預設會顯示這些點,您的應用程式不需要採取任何行動。徽章也可以停用和限制。

圖 17:應用程式圖示上的通知圓點,表示應用程式有新的相關通知

使用者可對通知執行的動作

通知可讓使用者執行下列任一動作:

  • 前往目的地:使用者可以輕觸通知來導覽。如果通知顯示在鎖定螢幕上,使用者必須輕觸兩下通知,然後輸入 PIN 碼、解鎖圖案或密碼。

    使用者輕觸通知後,應用程式必須顯示與該通知直接相關的 UI,並讓使用者立即採取行動。舉例來說,如果通知顯示「輪到你玩雙人遊戲了」,輕觸通知應會直接開啟該遊戲。

  • 查看通知的展開檢視畫面:標題中會顯示展開指標。使用者可以輕觸指標或向下滑動通知主體來展開通知。

    圖 18:展開的通知
  • 關閉通知 (如果允許):使用者可以向左或向右滑動通知來關閉。

如果通知顯示背景程序仍在執行中 (例如音樂播放),可能無法透過滑動手勢關閉。

  • 延後顯示即時通知:使用者可以向上滑動即時通知,系統會在一分鐘內停止顯示該活動的通知。

  • 日後控管類似通知:使用者可以透過下列方式存取通知控制選項:

    • 按住個別通知
    • 向左或向右滑動通知,然後輕觸「設定」圖示

顯示的控制選項會因 Android 版本而異,且取決於應用程式是否設有通知管道 (Android 8.0 以上版本)。

將多則通知分組

如果應用程式會產生多則相同類型的通知,Android 會提供通知分組功能,避免使用者收到過多通知。

應用程式可根據下列層級顯示多個通知。

  • 父項通知會顯示子項通知的摘要。
  • 如果使用者展開父項通知,Android 就會顯示所有子項通知。
  • 使用者可以展開子項通知,查看完整內容。

Android 會顯示子項通知,但不會重複顯示標頭資訊。舉例來說,如果子項通知與父項通知使用相同的應用程式圖示,子項通知的標題就不會顯示圖示。

如果子項通知單獨顯示,必須容易理解,因為系統可能會在通知送達時,將其顯示在群組外。

圖 19:已分組通知的收合和展開檢視畫面。

設定

頻道

從 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 和相簿應用程式的螢幕鎖定通知就會顯示所有內容。

圖 20:不同敏感度等級的螢幕鎖定畫面。

1 螢幕鎖定畫面上顯示所有通知內容

2 螢幕鎖定畫面會隱藏含有私密資訊的通知內容

樣式

簡明扼要的文字

Android 會將內容標題截斷為一行 (即使展開也是如此)。

優質的內容標題應符合下列規範:

  • 不超過 30 個字元
  • 包含最重要的資訊
  • 避免使用變數 (除非變數包含數字或簡短的文字字串,或前面有文字)
  • 不含應用程式名稱,因為標題中已顯示
在內容標題中顯示應用程式名稱,這與標題區域重複,且會佔用可用字元。
在內容標題中顯示最重要的資訊。

優質內容文字應符合下列規範:

  • 避免超過 40 個字元的限制
  • 避免重複內容標題中的資訊

大型圖示

如果圖片能有效強化通知內容,請使用大圖示。例如:

  • 其他人的通訊內容,例如傳送訊息者的圖片
  • 內容來源 (如果與傳送通知的應用程式不同),例如使用者訂閱的 YouTube 頻道標誌
  • 與通知相關的實用符號,例如行車路線的箭頭符號

顯示人物的大型圖示必須是圓形,其他情況則為正方形。

使用大型圖示宣傳品牌。
使用大型圖示以有意義的方式強化通知內容,例如顯示附加至訊息通知的個人相片。

Android 版本更新

Android 通知系統的 UI 和通知相關 API 不斷演進。如要查看這些變更的清單,請參閱通知相容性

平台注意事項

Wear

如果使用者擁有已配對的 Wear OS 裝置,則所有通知都會自動顯示在該裝置上,包括可展開的詳細資料和動作按鈕。詳情請參閱「Wear 通知設計頁面」。