![](https://developer.android.google.cn/static/images/design/ui/mobile/notifications-hero.png?authuser=9&hl=lt)
通知可提供与您的情况有关的简短、及时且相关的信息 。
Android 操作系统控制通知的许多方面,但您可以控制 其他方面实现通知时,请按以下步骤操作:
- 了解通知的剖析。
- 为您的用例选择通知类型。
- 设置与通知类型一致的通知类别 您选择的代码
要点总结
- 思考一下通知的用途:您为什么要提醒用户?
- 确定通知权限模式,并考虑其重要性 通知发送到您的应用,以及在用户体验历程中的什么位置询问。
- 选择您的通知模板。
- 创建通知内容:
<ph type="x-smartling-placeholder">
- </ph>
- 标题文字应简明扼要地总结通知。
- 内容文本应预览通知。
- 图片内容(如果适用)。
- 媒体模板的媒体键盘和元数据。
- 通过提供 用户执行的操作(包括文字按钮、输入操作或媒体操作) 控件。
- 添加您的应用图标并设置应用图标背景颜色。
- 设置通知的频道和类别。这样,系统就能 以及用户可以自定义要接收和提供哪些通知 优先级行为
- 如果您的应用可能会同时发送多条通知,请将通知分为一组。
- 如需了解通知,请查看 Figma 上的 Android UI Kit 模板。
通知详解
通知功能旨在让您轻松浏览和使用通知 重要元素。这些元素包括:
- 主要内容:此类内容是视频中最突出的元素, 通知。时间戳等次要信息较小 并置于主要内容之上。
- 人物:如果通知涉及人物,则头像会从中突显 即可。
- 操作:用户可以通过点按指示图标来展开通知。 操作以文本标签的形式显示,并采用单独的背景颜色, 位置。
![](https://developer.android.google.cn/static/images/design/ui/mobile/notifications-1-collapsed.png?authuser=9&hl=lt)
通知标题和内容
收起后,通知会显示应用图标、标题文本、时间戳 展开指示器和内容文本。您还可以选择显示大图标。
<ph type="x-smartling-placeholder">![](https://developer.android.google.cn/static/images/design/ui/mobile/notifications-2-header-area.png?authuser=9&hl=lt)
1 应用图标:应用图标是 是关于应用标识的二维表示法。以单色显示 。如果您的应用会发送各种各样的通知,请考虑 用符号替换您的应用图标,以区分不同类型的 通知。如需了解更多详情,请参阅应用图标颜色 。
2 标题文字: 通知或来源(例如用户的账号名称)。内容是 。
3 时间戳:指明通知 已发送,例如未接来电的时间。
4 展开指示器:用于指明 通知处于收起或展开状态。
5 内容文本:支持信息。
6 大图标(可选):图片可能 以有意义的方式强调通知,例如通过 包含发送者的头像。
应用图标颜色
从 Android 12(API 级别 31)开始,系统从 您在应用中设置的通知颜色。如果应用未设置颜色 使用系统主题颜色。之前,该颜色为灰色。
<ph type="x-smartling-placeholder">![](https://developer.android.google.cn/static/images/design/ui/mobile/notifications-3-resulting-styled-app-icon-color.png?authuser=9&hl=lt)
对于大多数样式,系统仅在通知
获取前台服务通知。不过,这种要求
的MediaStyle
和DecoratedMediaCustomViewStyle
通知
连接了媒体会话。
以下代码段展示了如何应用图标颜色。
val notification = Notification.Builder()
.setColor(Color.GREEN)
.setColorized(true)
.setSmallIcon(R.drawable.app_icon)
.setStyle(Notification.DecoratedCustomViewStyle())
.build()
通知操作
<ph type="x-smartling-placeholder">![](https://developer.android.google.cn/static/images/design/ui/mobile/notifications-4-action-area.png?authuser=9&hl=lt)
1 文本按钮操作
2 实心操作按钮
3 建议的回复
4 回复文本字段
从 Android 7.0(API 级别 24)开始,系统显示没有图标的操作 以容纳更多文字。为了适应 Android Wear 设备和设备 运行 Android 6.0(API 级别 23)及更低版本时,您的应用仍必须提供 图标。
展开后的视图
您可以使用展开视图向用户显示更多信息,而无需 离开通知。
展开时,通知最多可提供以下任意三项内容 各种操作:
- 建议的回复
- 强调的操作(药丸形状的按钮)
- 标准文字操作
![](https://developer.android.google.cn/static/images/design/ui/mobile/notifications-5-dont-include-text-actions.png?authuser=9&hl=lt)
错误做法
![](https://developer.android.google.cn/static/images/design/ui/mobile/notifications-6-do-let-user-pause.png?authuser=9&hl=lt)
正确做法
允许在通知中输入内容
您可以通过添加“回复”来让用户直接在通知中输入内容 操作。此模式适合在输入少量文本时使用,例如回复 或快速记录笔记。
对于较长的输入框,请将用户引导至您的应用,以为用户提供更多空间 查看和编辑文本。
对于即时通讯应用,我们建议在用户之后继续显示通知 已经发送了回复, 等到对话暂停后再 并自动将其关闭
<ph type="x-smartling-placeholder">![](https://developer.android.google.cn/static/images/design/ui/mobile/notifications-7-users-reply-directly.png?authuser=9&hl=lt)
根据你的使用情形选择通知类型
Google 在其 Android 应用中使用以下通知模板。这些 您可以根据您的应用在一定程度上自定义模板。
如需了解通知模板,请查看 Figma 上的 Android UI Kit。
标准模板
标准模板适用于大多数通知,因此可以保持简洁 大图标(如适用)和操作。
<ph type="x-smartling-placeholder">![](https://developer.android.google.cn/static/images/design/ui/mobile/notifications-8-standard-template.png?authuser=9&hl=lt)
大号文字模板
大文本模板非常适合显示较长的文本块。它让 用户在展开通知后预览更多文字。
<ph type="x-smartling-placeholder">![](https://developer.android.google.cn/static/images/design/ui/mobile/notifications-9-big-text-template.png?authuser=9&hl=lt)
大图模板
大图模板专为包含图片的通知而设计。时间 收起,通知会显示图片的大图标缩略图。时间 展开时,通知会显示大得多的预览。
<ph type="x-smartling-placeholder">![](https://developer.android.google.cn/static/images/design/ui/mobile/notifications-10-big-picture-template.png?authuser=9&hl=lt)
进度模板
进度模板专为用户发起的需要时间的活动而设计 操作完成。使用此模板的通知展开后,会显示 还会提供一个“取消”按钮允许用户终止 此活动。(对于不可取消的活动,并不保证一定会发出通知。)
<ph type="x-smartling-placeholder">![](https://developer.android.google.cn/static/images/design/ui/mobile/notifications-11-progress-template.png?authuser=9&hl=lt)
媒体模板
媒体模板旨在让用户控制当前播放的媒体 。
- 收起时,通知最多可显示三项操作。大型语言模型 图标可以显示相关图片,例如相册封面。
- 展开时,通知最多可显示 5 项以较大字体显示的操作 或六个操作不带图片背景和其他元素 通知会自动继承图片的颜色。
![](https://developer.android.google.cn/static/images/design/ui/mobile/notifications-12-media-template.png?authuser=9&hl=lt)
消息模板
MessagingStyle 模板专为实时通信而设计。时间 展开,用户可通过使用此模板的通知来回复消息 。
<ph type="x-smartling-placeholder">![](https://developer.android.google.cn/static/images/design/ui/mobile/notifications-13-messaging-template.png?authuser=9&hl=lt)
通话模板
使用 CallStyle 模板生成大格式通知, 包含大图片附件,并指明是来电还是去电。
<ph type="x-smartling-placeholder">![](https://developer.android.google.cn/static/images/design/ui/mobile/notifications-call-style.png?authuser=9&hl=lt)
通知权限
通知应尽可能相关且及时,大多数通知 非豁免,也就是说,用户必须同意接收来自 。
但有一种例外情况:从 Android 13(API 级别 33)开始,媒体 管理通话的会话和应用可免于询问 用户同意。如果用户既有应用, 已开启通知。如需了解详情,请参阅豁免。
我们强烈建议您在设置中提供通知选项,以便 允许用户更新通知偏好设置。
提示用户选择接收需要豁免的通知
对于需要豁免的通知,请提示用户指明是否想要 选择接收通知。明确选择接收 可能使通知更实用,干扰性更小。
<ph type="x-smartling-placeholder">![](https://developer.android.google.cn/static/images/design/ui/mobile/notifications-14-request-user-permission.png?authuser=9&hl=lt)
等待系统显示通知对话框提示:
- 说明通知提供的好处以及不授予通知的结果 通知权限。
- 提供符合情境的界面,将通知与其功能或内容相关联 影响。此界面可采用任何形式,以便更好地集成到您的应用中: 费用、底部动作条或新手入门屏幕上的示例卡片。以上任意一项 应可关闭。
- 如果用户已关闭 界面。
从 Android 13 开始,系统可能会重新提示用户授予通知权限。
必需通知
前台服务用于执行可被用户察觉到但同时 用户没有直接与您的应用互动这些服务会显示状态栏 通知,让用户知道您的应用正在 会消耗系统资源。
<ph type="x-smartling-placeholder">![](https://developer.android.google.cn/static/images/design/ui/mobile/notifications-15-fitness-app-example.png?authuser=9&hl=lt)
由于这些进程会消耗电量和数据流量,因此您的应用必须让用户 通过显示不可关闭的通知来发现它们。用户无法关闭 因此,您必须为用户提供停止 服务。
以下示例展示了一条来自健身应用的通知。用户 启动了一个活跃的锻炼会话,这将实例化一个前台服务 追踪锻炼课程。应用会显示通知 追踪步行,并提供查看锻炼的选项。
何时不应使用通知
请勿将通知用于以下任何用例:
- 对于交叉推介或宣传其他商品(严格禁止 Play 商店禁止)
- 如果用户从未打开过您的应用
- 作为与用户沟通的主要方式
- 鼓励用户继续使用应用,但不提供直接价值(例如 例如:“很久没见到您了!”)
- 当请求为您的应用评分时
- 对于不需要用户参与的操作,例如同步 信息
- 通知错误状态,应用可能会在没有用户互动的情况下恢复
- 节假日或生日祝福语
![](https://developer.android.google.cn/static/images/design/ui/mobile/notifications-16-dont-send-greetings.png?authuser=9&hl=lt)
错误做法
![](https://developer.android.google.cn/static/images/design/ui/mobile/notifications-17-dont-interrupt-user.png?authuser=9&hl=lt)
错误做法
行为
请注意以下通知行为以及如何在 特定上下文。
送达通知
当通知到达时,Android 会将其添加到抽屉式通知栏中。 根据您设置的参数和设备的当前状态, 可执行以下任意操作:
- 让手机发出提示音或振动。
- 在状态栏中显示图标;这通常是您的应用图标 如果您有多种类型的通知,请使用捕获 通知的用途。
- 以浮动通知的形式显示,一窥当前屏幕即可抓取 吸引用户的注意力
与往常一样,用户可以选择更改您设置的通知行为。
<ph type="x-smartling-placeholder">![](https://developer.android.google.cn/static/images/design/ui/mobile/notifications-arrival.png?authuser=9&hl=lt)
1 状态栏中的通知指示器,用于表明抽屉式通知栏中有通知。
2“短暂显示”通知放在当前屏幕上,以便在执行任务期间吸引用户的注意力。
抽屉式通知栏
Android 中的抽屉式通知栏通常在以下位置显示通知: 时间逆序,调整受以下因素影响 条件:
- 应用声明的通知优先级或重要性
- 通知最近是否通过提示音或振动提醒用户
- 通知是否与任何人相关,这些人是不是已加星标的联系人
- 通知是否代表重要的持续性活动,例如 正在进行通话或播放音乐
- Android 操作系统对某些通知在 来增加或减少强调效果,这有助于 用户扫描内容
处理过时通知
抽屉式通知栏旨在向用户显示 生成当前时刻的数据如果较早的通知已过时,也就是说, 不再具有相关性,可以将其关闭,以免用户看到。
<ph type="x-smartling-placeholder">![](https://developer.android.google.cn/static/images/design/ui/mobile/notifications-20-just-arrived-text.png?authuser=9&hl=lt)
由应用图标标记指示的新通知
在搭载 Android 8.0(API 级别 26)及更高版本的设备上受支持的启动器中, 应用图标会显示一个通知圆点,表示该应用有新的 所有相关通知这些圆点默认显示在启动器应用中 您的应用无需执行任何操作。标志 “已停用”和“受限”模式
<ph type="x-smartling-placeholder">![](https://developer.android.google.cn/static/images/design/ui/mobile/notifications-21-dot.png?authuser=9&hl=lt)
用户可以通过通知执行的操作
借助通知,用户可以执行以下任意操作:
导航到目的地:用户可点按通知进行导航。如果 锁定屏幕上,用户需要点按两次,然后 然后输入其 PIN 码、密码或绘制解锁图案
当用户点按通知时,您的应用必须显示 直接附加到该通知,并允许用户立即执行操作。对于 例如,如果通知提示玩家在双人游戏中轮到自己, 点按通知应该可以直接进入对应的游戏
查看通知的展开视图:在 标头。用户可以点按指示图标或向下滑动通知正文 将其展开。
<ph type="x-smartling-placeholder"></ph> 图 18:展开后的通知 关闭通知(如果允许):用户可以通过滑动来关闭通知 向左或向右。
指示后台持续进程的持续性通知,例如 。
暂停浮动通知:用户可以在浮动通知上向上滑动 通知,而系统不允许再发送来自相应事件的通知 闪烁一分钟。
今后控制类似通知:用户可以查看通知 控制权:
- 触摸和单独显示一条通知
- 向左或向右滑动通知,然后点按设置图标
显示的控件因 Android 版本以及应用是否为 具有通知渠道(从 Android 8.0 开始)。
将多个通知分组
对于生成相同类型的多条通知的应用,Android 提供 对通知进行分组,以避免用户应接不暇。
您的应用可以根据以下内容显示多条通知 层级结构。
- 父级通知会显示其子级通知的摘要。
- 如果用户展开父级通知,Android 会显示所有子级通知 通知。
- 用户可以展开子通知以显示其全部内容。
Android 显示没有重复标题信息的子通知。对于 例如,如果子通知与其父通知具有相同的应用图标,那么 标题不包含图标。
如果子通知以系统形式单独显示,必须易于理解 可以在他们到达时在群组以外的地方显示。
<ph type="x-smartling-placeholder">![](https://developer.android.google.cn/static/images/design/ui/mobile/notifications-group.png?authuser=9&hl=lt)
设置
频道
从 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 设备 评估每个通知的可见性级别,以确定什么可以安全地 。
为锁定屏幕上的内容设置敏感度等级
用户隐私至关重要,因此请注意 锁定屏幕上显示的通知级别。对于每个 创建通知时,必须将公开范围级别设为公开、不公开、 或 secret。
- 公开通知会在安全锁定屏幕上完全显示。
- 私密通知已隐藏。
- 私密通知位于中间:它们仅显示基本信息,
包括发布该视频的应用的名称及其图标。您不再使用
您可以视需要显示
不会泄露个人信息,如
2 new messages
。
在以下示例中,Gmail 和 Google 相册的锁定屏幕通知 应用会在用户选择在应用内显示这些信息后显示所有内容 锁定屏幕。
<ph type="x-smartling-placeholder">![](https://developer.android.google.cn/static/images/design/ui/mobile/notifications-sensitivity-levels.png?authuser=9&hl=lt)
1 在锁定屏幕上显示所有通知内容
2 在锁定屏幕上显示隐藏的敏感通知内容
样式
文字简明扼要
Android 会将内容标题截断为一行(即使已展开)。
好的内容标题遵循以下准则:
- 不超过 30 个字符
- 包含最重要的信息
- 避免使用变量(除非变量包含数字或短文本字符串, (带文字)
- 不包括标题中已有的应用名称
![](https://developer.android.google.cn/static/images/design/ui/mobile/notifications-27-takeaways-dont-show-app-name.png?authuser=9&hl=lt)
错误做法
![](https://developer.android.google.cn/static/images/design/ui/mobile/notifications-28-do-show-most-important-info.png?authuser=9&hl=lt)
正确做法
优质的内容文字应符合以下准则:
- 避免超出 40 个字符的长度限制
- 避免重复内容标题中的内容
大图标
对于有些用例,如果图像能够有效强化 通知的内容。以下是一些示例:
- 其他人发来的通讯内容,例如某人发送 消息
- 内容来源(如果与发送通知的应用不同); 例如用户所订阅 YouTube 频道的徽标
- 与通知相关的有意义的符号,例如表示驾车的箭头符号 路线
大图标在显示人物时必须为圆形,而在其他所有图标中均为方形 案例
![](https://developer.android.google.cn/static/images/design/ui/mobile/notifications-29-dont-use-large-icon-branding.png?authuser=9&hl=lt)
错误做法
![](https://developer.android.google.cn/static/images/design/ui/mobile/notifications-30-do-use-large-icon-reinforce-meaning.png?authuser=9&hl=lt)
正确做法
Android 版本更新
Android 通知系统界面和与通知相关的 API 持续 不断演变。有关这些更改的列表,请查看通知 兼容性。
平台注意事项
Wear
如果用户有配对的 Wear OS 设备,则您的所有通知都会显示在该设备上 包括可展开的详细信息和操作按钮。有关详情,请参阅 Wear 上通知的设计页面。