跳转到主要内容
Android 通知类别(又称通知渠道)在 Android 8.0 (Oreo) 中引入,以给用户更大的控制权来决定如何接收您应用的通知。每个类别都定义自己的设置,如声音、振动、徽章行为和锁屏可见性。 OneSignal 使您能够直接从仪表板轻松创建和管理这些类别。或者,您也可以在应用中以编程方式定义它们。
OneSignal 的 Android 通知类别适用于 Google Android、华为 Android 和 Amazon FireOS。
要以编程方式定义类别,请参阅 Android 创建通知渠道指南

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


默认通知类别

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

杂项

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

已恢复

在应用被强制退出并重新打开时使用,恢复之前清除的通知。
  • 重要性:
  • 声音: 关闭
  • 振动: 关闭
  • 徽章: 禁用
  • 锁屏: 私密
如果您始终使用自定义类别发送推送通知,“杂项”渠道将不会出现在用户设备上。“已恢复”渠道将始终出现,以处理强制关闭后恢复的通知。

华为特定行为

在华为设备上,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 设置中移除已删除的类别。

在通知中使用类别

在 OneSignal 仪表板中

  • 在您的消息编辑器中转到 Android 平台设置
  • 在”类别”下选择您的类别
  • 声音、锁屏和 LED 设置将从类别中提取并在 UI 中隐藏。

使用 REST API

创建消息 API 请求中使用 android_channel_id

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

如果使用您自己定义的 Android 渠道,请使用 existing_android_channel_id

常见问题

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

  1. 初始化错误: 确保 OneSignal 在 Application 类中初始化,而不是在 Activity 中。请参阅 Android SDK 设置
  2. 过时的类别: 如果您在发送推送后更改了类别,Android 可能不会应用这些更改。请创建一个新类别。

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

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

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

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