通知

通知會在應用程式處於閒置狀態時,提供短暫、及時的相關資訊。

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

  1. 瞭解通知的構成元素。
  2. 依據用途選擇通知類型。
  3. 請根據您選擇的通知類型設定適當的通知類別。

受迫失誤數

  • 考量通知的目的:您為何要提醒使用者?
  • 決定通知權限模式,考量通知對應用程式的重要性,以及在使用者歷程中應向哪些位置提出要求。
  • 挑選您的通知範本。
  • 建立通知內容:
    • 標題文字應簡潔扼要。
    • 通知內容文字應預覽。
    • 圖片內容 (如果適用於您的應用程式內容)。
    • 媒體範本的媒體 keyart 元素和中繼資料。
  • 您可以依據使用者的內容提供動作 (例如文字按鈕、輸入或媒體控制項),讓使用者清楚瞭解通知的用途。
  • 加入應用程式圖示,並設定應用程式圖示的背景顏色。
  • 設定通知的頻道和類別。這樣一來,系統和使用者就能自訂要接收的通知內容,並提供優先行為。
  • 如果您的應用程式可以一次傳送數則通知,請群組通知。
  • 如需通知範本,請參閱 Figma 上的 Android UI 套件

通知剖析

通知可讓您輕鬆掃描並使用通知最重要的元素。:

  • 主要內容:這是通知最醒目的元素,時間戳記等次要資訊較小,並會整併到主要內容上方。
  • 人員:如果通知涉及某人,顯示圖片會與其他內容有所區別。
  • 動作:使用者只要輕觸指標圖示,即可展開通知。 動作會以文字標籤顯示,並以單獨的背景顏色和位置顯示。
圖 1:收合的通知

通知標頭和內容

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

圖 2:通知標題區域

1 應用程式圖示:應用程式圖示是應用程式的 2D 圖示。它會以單色顯示在狀態列中。如果應用程式傳送多種通知,請考慮將應用程式圖示替換成符號,以區分不同類型的通知。詳情請參閱「套用圖示顏色」。

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

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

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 套件,取得通知範本。

標準範本

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

圖 6:標準通知範本

大型文字範本

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

圖 7:包含選項大型圖示的大型文字範本

大型圖片範本

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

圖 8:大圖範本

進度範本

進度範本是專為需要時間才能完成的使用者啟動活動而設計。展開後,使用此範本的通知會顯示進度列,並包含「取消」動作,讓使用者終止這項活動。(無法取消的活動不給予通知)。

圖 9:進度範本

媒體範本

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

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

訊息範本

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

圖 11:訊息範本

通話範本

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

圖 12:通話範本

通知權限

基於通知的關聯性與時間,大多數通知都「不受豁免」,也就是說,使用者必須同意接收來自應用程式的通知。

以下例外情況:從 Android 13 (API 級別 33) 開始,媒體工作階段和應用程式管理通話不受使用者同意。如果使用者已開啟通知功能,則現有的應用程式也可能符合資格。詳情請參閱豁免一文。

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

提示使用者選擇啟用豁免通知

如為非豁免通知,請提示使用者表明是否要選擇接收通知。明確選擇接收通知的使用者,比較不易發現之實用性及乾擾性。

圖 13:針對非豁免通知要求使用者同意

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

  • 說明通知提供的好處,以及不授予通知權限的結果。
  • 針對通知的功能或影響內容提供情境 UI。這個 UI 可以使用任何格式,以最適當的方式在應用程式中整合,例如付費、底部功能表或新手上路畫面中的資訊卡。上述任一項目應可關閉。
  • 如果使用者已關閉使用者介面,請勿顯示通知權限對話方塊。

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

必要通知

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

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

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

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

不適合使用通知的時機

請勿將通知用於以下任何情況:

  • 適用於其他產品的交叉宣傳或廣告 (Play 商店嚴格禁止這類內容)
  • 如果使用者從未開啟過您的應用程式
  • 做為與使用者溝通的主要方式
  • 旨在鼓勵使用者返回應用程式,但不提供直接價值 (例如「有一段時間未見!」)
  • 適用於為應用程式評分的要求
  • 適用於不需要使用者參與的作業,例如:同步處理資訊
  • 宣布錯誤狀態:應用程式可能會在使用者未進行互動的情況下復原
  • 節日或生日訊息
以通知的形式傳送假日或生日祝福。
在工作進行期間幹擾使用者,只是為了詢問您是否拿出良好的工作。

行為

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

收到通知

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

  • 裝置發出音效或讓手機震動。
  • 顯示在有圖示的狀態列中,這通常是應用程式圖示,但如果您有多個通知,請使用可擷取通知用途的符號。
  • 顯示為抬頭通知,直接跳到目前畫面,吸引使用者註意。

一如以往,使用者可以選擇更改您設定的通知行為。

圖 15:通知送達

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

2 在工作進行中「短暫顯示」通知,吸引使用者註意。

通知導覽匣

Android 的通知導覽匣通常以反向時間順序顯示通知,且調整項目受到下列條件影響:

  • 應用程式聲明的通知優先順序或重要性
  • 通知最近是否以音效或震動通知使用者
  • 任何與該通知連結的使用者,以及對方是否為標上星號的聯絡人
  • 通知是否代表重要的持續性活動,例如通話中或播放音樂
  • 加上強調或強調效果,修改 Android 作業系統在清單頂端和底部的部分通知外觀,有助於使用者掃描內容

處理過時通知

通知導覽匣旨在向使用者顯示與目前時間相關的資訊。如果先前的通知「過時」,表示該通知已過時,請關閉通知,以免使用者看到。

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

圖 20:具有不同靈敏度等級的螢幕鎖定。

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

2 螢幕鎖定畫面上的機密通知內容已隱藏

樣式

文字清楚簡潔

Android 會將內容標題截斷成單行 (即使展開後亦然)。

優質內容標題必須遵守下列規範:

  • 不超過 30 個半形字元
  • 包含最重要的資訊
  • 避免使用變數 (除非其中包含數字或短文字字串,或是前面加上文字)
  • 排除已顯示在標頭中的應用程式名稱
在內容標題中顯示應用程式名稱,避免與標題區域重複,且會使用可用的字元。
在內容標題中顯示最重要的資訊。

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

  • 避免超過 40 個半形字元的限制
  • 避免內容標題重複出現

大型圖示

若是圖像能夠有效強化通知內容的用途,請使用大圖示。例如:

  • 其他人的通訊內容,例如傳送訊息的圖片
  • 並非傳送通知的應用程式內容來源,例如使用者訂閱的 YouTube 頻道的標誌
  • 通知的有意義的符號,例如行車路線的箭頭符號

大型圖示在顯示人物時必須使用圓形,但在所有其他情況下則為正方形。

使用大圖示來宣傳品牌。
使用大型圖示強化通知的內容以有意義的方式強調,例如在訊息通知中附上顯示對象的相片。

Android 版本更新

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

平台注意事項

Wear

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