【Interface&navigation】通知概述(36)

通知是Android在应用的UI外显示的消息,用于向用户提供提醒,来自其他人的通信或来自应用的其他及时信息。用户可以点按通知以打开您的应用或直接从通知中采取操作。

此页面概述了通知的显示位置和可用功能。如果要开始构建通知,请阅读“ 创建通知”。

有关设计和交互模式的更多信息,请参阅通知设计指南。

设备上的外观


通知以不同的位置和格式显示给用户,例如状态栏中的图标,通知抽屉中的更详细条目,应用程序图标上的徽章以及自动配对可穿戴设备。

状态栏和通知抽屉

发出通知时,它首先在状态栏中显示为图标。
【Interface&navigation】通知概述(36)
图1.通知图标显示在状态栏的左侧

用户可以向下滑动状态栏以打开通知抽屉,在那里他们可以查看更多详细信息并对通知执行操作。
【Interface&navigation】通知概述(36)
图2.通知抽屉中的通知

用户可以向下拖动抽屉中的通知以显示展开的视图,其中显示了其他内容和操作按钮(如果提供)。

通知抽屉中仍会显示通知,直到应用程序或用户解除通知为止。

单挑通知

从Android 5.0开始,通知可以短暂出现在称为抬头通知的浮动窗口中。此行为通常用于用户应立即了解的重要通知,并且仅在设备未锁定时才会显示。

【Interface&navigation】通知概述(36)
图3.前景应用程序前面会出现一个抬头通知

抬头通知会在您的应用发出通知时出现,并在片刻后消失,但仍会像往常一样在通知抽屉中显示。

可能触发抬头通知的示例条件包括:

用户的活动处于全屏模式(应用程序使用 fullScreenIntent)。
该通知具有高优先级,并在运行Android 7.1(API级别25)及更低级别的设备上使用铃声或振动。
通知渠道对运行Android 8.0(API级别26)及更高版本的设备具有高度重要性。

锁屏

从Android 5.0开始,通知可以显示在锁定屏幕上。

您可以通过编程方式在安全锁定屏幕上设置应用程序发布的通知中可见的详细信息级别,甚至可以根据锁定屏幕显示通知。

用户可以使用系统设置选择锁定屏幕通知中可见的详细程度,包括禁用所有锁定屏幕通知的选项。从Android 8.0开始,用户可以选择为每个通知渠道禁用或启用锁定屏幕通知。
【Interface&navigation】通知概述(36)
图4.隐藏敏感内容的锁定屏幕上的通知
要了解更多信息,请参阅如何设置锁定屏幕可见性。

应用程序图标徽章

在运行Android 8.0(API级别26)及更高版本的设备上受支持的启动器中,应用程序图标会在相应的应用启动器图标上显示带有彩色“徽章”(也称为“通知点”)的新通知。

用户可以长按应用图标以查看该应用的通知。然后,用户可以关闭或处理来自该菜单的通知,类似于通知抽屉。
【Interface&navigation】通知概述(36)
图5.通知标记和长按菜单

要了解有关徽章如何工作的更多信息,请阅读通知徽章。

穿戴OS设备

如果用户具有配对的Wear OS设备,则会自动显示所有通知,包括可扩展的详细信息和操作按钮。

您还可以通过自定义可穿戴设备上的通知的某些外观来增强体验,并提供不同的操作,包括建议的回复和语音输入回复。有关详细信息,请参阅如何 在通知中添加特定于可穿戴设备的功能。
【Interface&navigation】通知概述(36)
图6.通知自动出现在配对的Wear OS设备上

通知解剖


知的设计由系统模板决定 - 您的应用程序只是定义模板每个部分的内容。通知的某些详细信息仅显示在展开的视图中。
【Interface&navigation】通知概述(36)
图7.包含基本详细信息的通知

通知的最常见部分如图7所示:

小图标:这是必需的并且设置为 setSmallIcon()。
应用程序名称:这是由系统提供的。
时间戳:这是由系统提供的,但您可以使用setWhen()或覆盖 它setShowWhen(false)。
大图标:这是可选的(通常仅用于联系人照片;不要将其用于您的应用程序图标)并设置为 setLargeIcon()。
标题:这是可选的,并设置为 setContentTitle()。
文字:这是可选的,并设置为 setContentText()。
有关如何使用这些功能创建通知的详细信息,请参阅创建通知。

通知行动

虽然不是必需的,但每个通知都应该在点击时打开相应的应用活动。除了此默认通知操作之外,您还可以添加操作按钮,从通知中完成与应用相关的任务(通常无需打开活动),如图9所示。
【Interface&navigation】通知概述(36)
图9.带有操作按钮的通知

从Android 7.0(API级别24)开始,您还可以添加操作以回复消息或直接从通知中输入其他文本。

“ 创建通知”中进一步说明了添加操作按钮。

可扩展的通知

默认情况下,通知的文本内容会被截断以适合一行。如果您希望通知更长,可以通过应用其他模板启用可扩展的更大文本区域,如图8所示。
【Interface&navigation】通知概述(36)
图8.大文本的可扩展通知
您还可以使用图像,收件箱样式,聊天对话或媒体播放控件创建可展开的通知。有关更多信息,请参阅创建可扩展通知。

虽然我们建议您始终使用这些模板来确保所有设备上的设计兼容性,但如有必要,您还可以创建自定义通知布局。

通知更新和组


为避免在有其他更新时使用多个或冗余通知轰炸用户,您应考虑更新现有通知 而不是发布新通知,或考虑使用收件箱样式通知来显示对话更新。

但是,如果需要提供多个通知,则应考虑将这些单独的通知分组到一个组中(在Android 7.0及更高版本上可用)。通知组允许您将多个通知折叠到通知抽屉中的一个帖子中,并带有摘要。然后,用户可以展开通知以显示每个单独通知的详细信息。

用户可以逐步扩展通知组及其中的每个通知以获取更多详细信息。
【Interface&navigation】通知概述(36)
图10.折叠和展开的通知组

要了解如何向组添加通知,请参阅 创建通知组。

注意:如果同一个应用程序发送四个或更多通知但未指定分组,系统会自动将它们分组在一起。

通知渠道


从Android 8.0(API级别26)开始,所有通知都必须分配给频道,否则不会显示。通过将通知分类到频道,用户可以禁用应用的特定通知频道(而不是禁用所有通知),用户可以控制每个频道的视觉和听觉选项 - 所有这些都来自Android系统设置(图11)。用户还可以长按通知以更改关联频道的行为。

在运行Android 7.1(API级别25)及更低版本的设备上,用户只能按应用程序管理通知(实际上每个应用程序在Android 7.1及更低版本上只有一个频道)。
【Interface&navigation】通知概述(36)
图11. Clock应用程序及其中一个通道的通知设置

注意:用户界面将频道称为“类别”

一个应用可以有多个通知渠道 - 针对应用发布的每种通知类型的单独渠道。应用还可以创建通知渠道,以响应应用用户的选择。例如,您可以为消息应用中的用户创建的每个会话组设置单独的通知通道。

您还可以在渠道中指定 Android 8.0及更高版本上通知的重要性级别。因此,发布到同一通知通道的所有通知都具有相同的行为。

有关更多信息,请参阅创建和管理通知通道。

通知重要性


Android使用通知的重要性来确定通知应该中断用户的程度(视觉上和听觉上)。通知的重要性越高,通知就越中断。

在Android 8.0(API级别26)及更高版本上,通知的重要性由importance发布通知的频道确定。用户可以在系统设置中更改通知通道的重要性(图12)。在Android 7.1(API级别25)及以下,每个通知的重要性由通知确定priority。
【Interface&navigation】通知概述(36)
图12.用户可以在Android 8.0及更高版本上更改每个频道的重要性

可能的重要性级别如下:

紧急:发出声音并显示为单挑通知。
高:发出声音。
中:没有声音。
低:没有声音,也没有出现在状态栏中。
所有通知(无论重要性)都显示在非中断系统UI位置,例如通知抽屉中和启动器图标上的徽章(尽管您可以修改通知徽章的外观)。

有关更多信息,请参阅如何设置重要性。

请勿打扰模式


从Android 5.0(API级别21)开始,用户可以启用“ 请勿打扰”模式,该模式会使所有通知的声音和振动静音。除非用户另行指定,否则通知仍会照常显示在系统UI中。

“请勿打扰”模式中有三种不同的级别:

完全静音:阻止所有声音和振动,包括警报,音乐,视频和游戏。
仅警报:除警报外,阻止所有声音和振动。
仅限优先级:用户可以配置哪些系统范围的类别可以中断它们(例如仅警报,提醒,事件,呼叫或消息)。对于消息和呼叫,用户还可以选择根据发送者或呼叫者的身份进行过滤(图13)。
【Interface&navigation】通知概述(36)
图13.用户可以根据系统范围的类别(左)以及根据发送消息的人或正在呼叫的人(右)来允许通知。
在Android 8.0(API级别26)及更高版本上,用户还可以通过逐个频道覆盖“请勿打扰”来允许通过特定于应用的类别(也称为频道)进行通知。例如,付款应用可能包含与提款和存款相关的通知渠道。然后,用户可以选择在优先模式下允许提款通知,存款通知或两者。在运行Android 7.1(API级别25)及更低版本的设备上,用户可以在应用基础上允许通过应用进行通知,而不是逐个频道地进行通知。

要正确配置这些用户设置的通知,您必须 设置系统范围的类别和频道。

前台服务的通知


当您的应用运行“前台服务”时,需要通知 - Service在后台运行,该用户长时间生活并且对用户而言是明显的,例如媒体播放器。此通知不能像其他通知一样被驳回。要删除通知,必须停止服务或从“前台”状态中删除该服务。

有关更多信息,请参阅在前台运行服务。如果您正在构建媒体播放器,还请阅读使用前台服务的MediaStyle通知。

发布限制


从Android 8.1(API级别27)开始,应用程序无法每秒发出超过一次的通知。如果您的应用在一秒钟内发布了多个通知,则它们都会按预期显示,但每秒只有第一个通知发出声音。

但是,Android在更新通知时也会应用速率限制。如果过于频繁地将更新发布到单个通知(许多不到一秒钟),系统可能会删除一些更新

通知兼容性


自Android 1.0以来,通知系统UI和与通知相关的API不断发展。要在仍支持旧设备的同时使用最新的通知API功能,请使用支持库通知API: NotificationCompat及其子类,以及NotificationManagerCompat。这将允许您避免编写条件代码来检查API级别,因为这些API可以为您处理。

NotificationCompat随着平台的发展而更新,以包含最新的方法。重要的是要注意,方法的可用性 NotificationCompat并不能保证在旧设备上提供相应的功能。在某些情况下,调用新引入的API会导致旧设备上出现无操作。例如,仅 NotificationCompat.addAction() 在运行Android 4.1(API级别16)及更高版本的设备上显示操作按钮。

以下是Android通知最显着的行为更改摘要。
Android 4.1,API级别16
引入了可扩展通知模板(称为通知样式),允许更大的通知内容区域显示信息。用户可以使用单指向上/向下滑动手势来扩展通知。
还介绍了以按钮的形式向通知添加其他操作的功能。
添加了用户在设置中基于每个应用程序关闭通知的功能。

Android 4.4,API级别19和20
通知侦听器服务已添加到API。
在API级别20中添加了Android Wear(现在称为Wear OS)支持。

Android 5.0,API级别21
推出锁屏和抬头通知。
用户现在可以将电话置于“请勿打扰”模式,并配置当设备处于仅优先模式时允许哪些通知中断它们。
添加到API的方法设置是否在锁定屏幕(setVisibility())上显示通知以及指定通知文本的“公共”版本。
setPriority() 添加的方法告诉系统该通知应该“中断”(例如,将其设置为高会使通知显示为抬头通知)。
添加到Android Wear(现在称为Wear OS)设备的通知堆栈支持。使用通知将通知放入堆栈 setGroup()。请注意,平板电脑和手机尚不支持通知堆栈。通知堆栈稍后将被称为组或捆绑。

Android 7.0,API级别24

重新设计通知模板以强调英雄形象和头像。
添加了三个通知模板:一个用于消息传递应用程序,另外两个用于使用可扩展的可供性和其他系统装饰来装饰自定义内容视图。
支持添加到通知组的手持设备(手机和平板电脑)。使用与Android 5.0(API级别21)中引入的Android Wear(现在称为Wear OS)通知堆栈相同的API。
用户可以直接在通知内部回复(他们可以使用内联回复输入文本,然后将其路由到通知的父应用)。

Android 8.0,API级别26
现在必须将个别通知放入特定频道。
用户现在可以关闭每个频道的通知,而不是关闭来自应用的所有通知。
具有有效通知的应用在主/启动器屏幕上的应用图标上显示通知“徽章”。
用户现在可以从抽屉中暂停通知。您可以为通知设置自动超时。
您还可以设置通知的背景颜色。
有关通知行为,很多的API从移动Notification到NotificationChannel。例如,使用NotificationChannel.setImportance()而不是NotificationCompat.Builder.setPriority()Android 8.0及更高版本。

联系我

QQ:94297366
微信打赏:https://pan.baidu.com/s/1dSBXk3eFZu3mAMkw3xu9KQ

公众号推荐:

【Interface&navigation】通知概述(36)

猜你喜欢

转载自blog.51cto.com/4789781/2153041