在 Android 11 中,Android 平臺變得更加以人爲本,而且擁有更爲豐富的展示方式,在反覆探究用戶在移動設備上的交流方式以後,咱們會將 Android 打造爲一款更加人性化的操做系統,使其能夠識別並優先推送您生活中人際關係密切相關的信息。做爲上述目標的一部分,在 Android 11 中,會話提醒會集中在通知欄頂部的一個專用區域裏,其中包含一些人性化的設計以及會話相關的特殊操做,好比以氣泡形式打開會話,在主屏幕建立會話快捷方式,或者設置一個提醒。html
本文會針對消息推送分級的幾個方面幫助你們理解通知欄是如何將用戶信息進行優先推送的。java
通知 是 UI 用來向用戶推送某些信息的一種信號,好比: 新聞信息、好友聊天信息、或者關於某個即發事件的消息提醒。android
通知有不少類型,可是本文僅關注用戶通知,由於它在咱們的平常使用中起到關鍵做用,而且是當今移動端設備的核心功能和主要用途之一。app
People notifications 是指推送通知上下文中含有 一人或多個 person 的消息。從 Android 8 (Oreo) 開始,People notifications 就已經在下拉式通知欄的可視層級中獲得了 "升格" 的 "待遇",其優先級僅次於正在進行的或者關鍵的通知消息 (以下圖中顯示 People to People,也就是人際消息通知,其優先級提高到了僅次於 Major Ongoing 下面)。在人際消息通知中,若是消息中包含了 person 上下文或者帶有 聯繫人 URI),則其優先級會進一步提升。ide
通知欄消息展現層次ui
做爲開發者,很是重要的一點就是要確保合適的使用通知被用來傳達合適的意圖,而且不會誤用通知區域。好比,日曆應用中一個即將發生的事件的提醒不該該做爲緊急提醒出如今會話區域。雖然 Android 強大的功能容許用戶經過 通知渠道 設置通知的頻率、可見性和重要性,可是若是沒有遵循最佳實踐,應用的價值和可信度就會下降,而且會對其在應用市場的信譽形成負面影響。google
若是你們對分級的細節感興趣,或者想要了解通知是如何組織、設置優先級或者排序的,那麼 Notification Record 就很值得你們關注了。它包含全部與通知分級相關的信息和通知分級計算的邏輯。通知的分級基於多個要素: 渠道設置 (在出現渠道以前,或者 Android 8.0 以前,使用的是通知的優先級)、煩擾程度、新鮮度,以及上下文。若是想要了解決定分級的各類標準,請查看一下實現 NotificationSignalExtractor 的相關類。spa
ValidateNotificationPeople 解析器也值得研究一下,由於它和人際屬性相關。下方示例的 validatePeople 方法調用中,它設置了一個關係密切度標記位參數,將重要性做爲通知排序的標準。操作系統
private RankingReconsideration validatePeople(Context context, final NotificationRecord record) { ... final PeopleRankingReconsideration rr = validatePeople(context, key, extras, record.getPeopleOverride(), affinityOut); final float affinity = affinityOut[0]; record.setContactAffinity(affinity); ... return rr; }
類似度會隨着下面幾種狀況而升高: 通知是否來自有效的聯繫人,有效聯繫人是否來自用戶的通信錄,聯繫人是否被加星標註或者被用戶收藏。設計
在 Android 11 中,還有不少更新強調了人際交往相關功能的重要性。例如在下拉通知欄中爲 消息風格的通知) 增長了專門的區域。
對於全新的會話區域,Bubbles 會出如今通知的上方,而且會以懸浮窗的方式關聯至用戶會話。
專門的會話區域和睦泡提高了用戶的專一體驗
您能夠看一下 Android 開發者文檔中會話 (Conversation API) 頁面中的相關介紹,只要經過遵循特定的指南,就可使會話浮如今系統的各個位置,從而促進分享並使用戶能夠在上下文中與某人進行某些操做。
文中所提到的 Android 11 中的更新代表了平臺將來的發展趨勢,和對人際交往相關的體驗的持續提高。若是想要了解更多關於 Android 11 的更新內容和 API 指南,請參考 Android 開發者文檔的 會話 頁面。