以人为本 | Android 11 的消息通知

在 Android 11 中,Android 平台变得更加以人为本,并且拥有更为丰富的展现方式,在反复探究用户在移动设备上的交流方式之后,我们会将 Android 打造为一款更加人性化的操作系统,使其可以识别并优先推送您生活中人际关系密切相关的信息。作为上述目标的一部分,在 Android 11 中,会话提醒会集中在通知栏顶部的一个专用区域里,其中包含一些人性化的设计以及会话相关的特殊操作,比如以气泡形式打开会话,在主屏幕创建会话快捷方式,或者设置一个提醒。

本文会针对消息推送分级的几个方面帮助大家理解通知栏是如何将用户信息进行优先推送的。

什么是通知?

通知 是 UI 用来向用户推送某些信息的一种信号,比如: 新闻信息、好友聊天信息、或者关于某个即发事件的消息提醒。

通知有很多类型,但是本文仅关注用户通知,因为它在我们的日常使用中起到关键作用,并且是当今移动端设备的核心功能和主要用途之一。

People notifications

People notifications 是指推送通知上下文中含有 一人或多个 person 的消息。从 Android 8 (Oreo) 开始,People notifications 就已经在下拉式通知栏的可视层级中得到了 "升格" 的 "待遇",其优先级仅次于正在进行的或者关键的通知消息 (如下图中显示 People to People,也就是人际消息通知,其优先级提升到了仅次于 Major Ongoing 下面)。在人际消息通知中,如果消息中包含了 person 上下文或者带有 联系人 URI),则其优先级会进一步提高。

通知栏消息展示层次

作为开发者,非常重要的一点就是要确保合适的使用通知被用来传达合适的意图,并且不会误用通知区域。比如,日历应用中一个即将发生的事件的提醒不应该作为紧急提醒出现在会话区域。虽然 Android 强大的功能允许用户通过 通知渠道 设置通知的频率、可见性和重要性,但是如果没有遵循最佳实践,应用的价值和可信度就会降低,并且会对其在应用市场的信誉造成负面影响。

通知分级

如果大家对分级的细节感兴趣,或者想要了解通知是如何组织、设置优先级或者排序的,那么 Notification Record 就很值得大家关注了。它包含所有与通知分级相关的信息和通知分级计算的逻辑。通知的分级基于多个要素: 渠道设置 (在出现渠道之前,或者 Android 8.0 之前,使用的是通知的优先级)、烦扰程度、新鲜度,以及上下文。如果想要了解决定分级的各种标准,请查看一下实现 NotificationSignalExtractor 的相关类。

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 和会话

在 Android 11 中,还有很多更新强调了人际交往相关功能的重要性。例如在下拉通知栏中为 消息风格的通知) 增加了专门的区域。 

对于全新的会话区域,Bubbles 会出现在通知的上方,并且会以悬浮窗的方式关联至用户会话。

专门的会话区域和气泡提升了用户的专注体验

您可以看一下 Android 开发者文档中会话 (Conversation API) 页面中的相关介绍,只要通过遵循特定的指南,就可以使会话浮现在系统的各个位置,从而促进分享并使用户可以在上下文中与某人进行某些操作。

People first

文中所提到的 Android 11 中的更新表明了平台未来的发展趋势,和对人际交往相关的体验的持续提升。如果想要了解更多关于 Android 11 的更新内容和 API 指南,请参考 Android 开发者文档的 会话 页面。

相关信息


Android_开发者
Android 最新开发技术更新,包括 Kotlin、Android Studio、Jetpack 和 Android 最新系统技术特性分享。

Android 最新开发技术更新,包括 Kotlin、Android Studio、Jetpack 和 Android 最新系统技术特性分享。...

389 声望
2k 粉丝
0 条评论
推荐阅读
官方零基础入门 Jetpack Compose 的中文课程来啦!
在 Android 平台上开发应用蕴藏着许多激动人心的机会: 您可以就此开始一段新的职业生涯,或者以有趣的方式表达自己,也可以创造一个与众不同的应用,甚至能够开启一段创业旅程。

Android开发者阅读 818

封面图
Android-Lifecycle超能解析-生命周期的那些事儿
版权声明:本文已授权微信公众号:Android必修课,转载请申明出处众所周知,Android凡是需要展示给用户看的,都包含着生命周期这个概念,例如Activity、Fragment、View等都与生命周期息息相关,在生命周期函数里...

XBaron4阅读 6.8k

布局大杀器—ConstraintLayout
Hi,大家好,看到标题后大家是不是一脸懵逼,这是啥?这小编搞事情?说好的六大布局咋又来个布局杀手?这就是咱们公众号和其他公众号的不同,我们并不是照本宣科的讲解Android知识,而是将项目当中实际运用到的并...

下码看花1阅读 3.9k

Android-博客及公众号推荐
首先强烈的推荐 stormzhang的博客,一直在关注他的博客和公众号,对我影响很大,不仅仅是Android学习之路,而且还是还会分享一些Android或者人生的经验,我也是一步步靠自己走过来,还在继续努力中。看stormzhang...

秦子帅2阅读 3.9k

六大布局之RelativeLayout
上一期我们给大家讲解了FrameLayout的使用,这一期我们为大家讲解一下RelativeLayout(相对布局)的使用,RelativeLayout是Android的六大布局之一,也是我们常用的布局之一,下面我们一起开始学习吧~

下码看花1阅读 5.9k

Android安全之Intent Scheme Url攻击
0X01 前言Intent scheme url是一种用于在web页面中启动终端app activity的特殊URL,在针对intent scheme URL攻击大爆发之前,很多android的浏览器都支持intent scheme url。Intent scheme url的引入虽然带来了一...

YAQ御安全1阅读 9.1k

Android常用的网络框架
一、Android 常用的网络框架大多数应用程序基本都需要连接网络,发送一些数据给服务端,或者从服务端获取一些数据。通常在 Android 中进行网络连接一般使用 Scoket 和HTTP,HTTP 请求方式比 Scoket 多得多。HTTP ...

위엄위엄1阅读 3.2k

Android 最新开发技术更新,包括 Kotlin、Android Studio、Jetpack 和 Android 最新系统技术特性分享。...

389 声望
2k 粉丝
宣传栏