在 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 开发者文档的 会话 页面。