跳转到主要内容
Android 通知类别(又称通知渠道)在 Android 8.0 (Oreo) 中引入,旨在为用户提供更大的控制权,决定如何接收您应用的通知。这允许您对通知进行分类,并定义不同的体验,如显示行为、声音、振动、徽章和锁屏可见性。 例如,如果您有突发新闻通知,您可以为它们创建一个类别,并设置”紧急”重要性和自定义声音,以确保它们显著显示,而不是像不太重要的通知那样可能被静音或使用默认声音。 OneSignal 使您能够直接在仪表板中轻松创建和管理这些类别。或者,您也可以在应用中以编程方式定义类别。请参阅 Android 创建通知渠道指南
OneSignal 的 Android 通知类别适用于 Google Android、华为 Android 和 Amazon FireOS。

设备上应用通知类别的示例


默认通知类别

OneSignal 自动创建两个默认类别:

杂项

在未设置类别时使用。
  • 重要性:
  • 声音: 默认
  • 振动: 默认
  • 徽章: 启用
  • 锁屏: 私密

已恢复

在应用被强制退出并重新打开时使用。如果应用被强制退出时通知中心有推送通知,它们将从设备中移除。重新打开应用会重新创建(恢复)这些通知。我们的 SDK 将自动将类别设置为”已恢复”,并使用以下设置来防止不必要的行为和潜在的客户挫折感,避免从您的应用收到多个带有声音和弹出窗口的通知。
  • 重要性:
  • 声音: 关闭
  • 振动: 关闭
  • 徽章: 禁用
  • 锁屏: 私密
如果您始终使用自定义类别发送推送通知,“杂项”渠道将不会出现在用户设备上。“已恢复”渠道将始终出现,以处理强制关闭后恢复的通知。

华为特定行为

在华为设备上,OneSignal 不会设置默认类别。如果您不包含类别,华为将默认应用重要性。

在 OneSignal 中创建 Android 通知类别

  1. 在 OneSignal 仪表板中转到设置 > 推送和应用内 > Android 通知渠道
  2. 点击添加组来组织您的类别(例如”新闻更新”、“社交活动”)。
  3. 在组内点击添加渠道来创建新类别。

在 OneSignal 中在哪里添加 Android 类别

您需要定义以下内容:

名称

用户可见。 保持清晰和描述性。

描述

用户可见。 简要说明此类别将处理的通知类型。

重要性

控制通知的可见性和干扰性:
  • 低: 静音,无警报
  • 中: 无声音/振动,最小视觉干扰
  • 高: 播放声音或振动,无屏幕弹窗
  • 紧急: 播放声音并显示为浮动通知或横幅式通知

声音

  • 关闭: 无声音
  • 默认: 设备的默认通知铃声
  • 自定义: 上传并引用自定义声音(无文件扩展名)。 示例:alert_beep(不是 alert_beep.wav) 请参阅 通知声音 获取设置说明。

振动

  • 关闭: 无振动
  • 默认: 使用设备的振动模式
  • 自定义: 使用模式(以毫秒为单位)定义您自己的。 示例:0, 300, 500, 300 → 等待 0ms,振动 300ms,暂停 500ms,振动 300ms。

LED 颜色

某些 Android 设备支持 LED 指示器:
  • 关闭: 无 LED
  • 默认: 设备默认
  • 自定义: ARGB 十六进制值(例如,FF0000FF 代表蓝色)

徽章

在应用图标上显示徽章计数:
  • 启用: 显示徽章
  • 禁用: 不显示徽章

锁屏可见性

  • 公开: 显示完整内容
  • 私密: 仅显示应用名称,隐藏内容
  • 秘密: 锁屏上不显示通知
创建类别后,您就可以在通知中使用它。

更新类别

设备收到来自某个类别的通知后,Android 会锁定该类别的行为。对重要性、声音、振动或其他设置的更改不会追溯应用。例如,如果您发送一个使用”高”重要性和声音的类别的推送通知,然后将重要性更改为”紧急”并使用不同的声音文件,则使用相同类别向同一设备发送的下一个推送通知将不会具有”紧急”重要性或新声音。 选项
  • 更新行为: 创建新类别。
  • 测试更改: 清除应用数据或卸载并重新安装应用。
您可以更新:
  • 渠道名称
  • 渠道组名称
当使用该更新渠道接收到下一个通知时,这些将在 Android 的通知设置中更新。

删除类别

要从用户设备中移除已删除的类别:
  1. 从 OneSignal 仪表板中删除类别。
  2. 确保从通知中心清除所有通知。
  3. 让用户:
    • 将应用放置在后台 60+ 秒
    • 再次打开它(触发 SDK 同步)
SDK 将重新同步并从 Android 设置中移除已删除的类别。

将类别添加到通知

根据您创建 Android 类别的方式以及发送消息的方式,以下是您可以在推送通知中引用类别的方法。

从 OneSignal 仪表板发送

  1. 在您的模板或推送消息编辑器中,导航到 Android 设置。
  2. 类别下,如果在 OneSignal 仪表板中创建,请选择您的类别,或者如果在应用中以编程方式创建,请选择**(在应用中创建)**。
    • 如果以编程方式创建,还要将现有渠道字段设置为代码中定义的名称。

在消息编辑器中选择 Android 类别的位置

使用 REST API 发送

如果您在 OneSignal 仪表板中创建了类别,请在 创建消息 API 请求中使用 android_channel_id。您可以在 Android 类别设置屏幕中找到渠道 ID。

在 Android 类别设置屏幕中查找渠道 ID

如果使用您自己以编程方式创建的 Android 渠道,请在 创建消息 API 请求中使用 existing_android_channel_id 参数,并设置为代码中定义的名称。

常见问题与故障排除

类别可以在勿扰 (DND) 模式下播放声音吗?

不可以。OneSignal 不在类别上设置 setBypassDnd。要覆盖 DND,请以编程方式创建您自己的渠道并启用此设置。请参阅 setBypassDnd

我可以本地化类别名称或描述吗?

不可以。OneSignal 不支持类别的多种语言。要支持本地化,请定义您自己的 Android 渠道,并在推送 API 请求中通过 existing_android_channel_id 引用它们。

为什么我的 Android 类别不工作?

有几个原因可能导致您的 Android 类别无法按预期工作。要进行故障排除,请检查以下内容:
  • 什么不工作?
    • 声音文件是否没有播放?
    • 是否未在设备上显示?
    • 您是否在 Android 通知设置中看不到类别?
  • 类别是如何创建的?
    • 如果在 OneSignal 仪表板中创建,请确保设置按您的预期定义。
    • 如果在应用中以编程方式创建,请检查您的代码。请参阅 Android 创建通知渠道指南
  • 检查类别设置:
    • 确保设置按您的预期定义。
    • 声音文件是否被正确引用?请参阅上面的声音部分。
    • 发送消息时是否正确引用了类别名称或 ID?
  • 您是否在发送通知后更新了设置?
    • 如果您在发送通知后更新了设置,Android 不会将这些更新应用到您的设备。请参阅上面的更新类别
  • 检查 OneSignal SDK 初始化:
    • 确保 OneSignal 在 Application 类中初始化,而不是在 Activity 中。请参阅 Android SDK 设置
仍需帮助?我们随时为您提供协助!请发送电子邮件至 support@onesignal.com,并提供上述信息,包括:
  • 如果在应用中以编程方式创建,请提供 Android 类别代码
  • 您的 OneSignal 仪表板中出现问题的消息的 URL
我们会尽快为您提供帮助!