OneSignal 的 Android 通知类别适用于 Google Android、华为 Android 和 Amazon FireOS。

设备上应用通知类别的示例
默认通知类别
OneSignal 自动创建两个默认类别:杂项
在未设置类别时使用。- 重要性: 高
- 声音: 默认
- 振动: 默认
- 徽章: 启用
- 锁屏: 私密
已恢复
在应用被强制退出并重新打开时使用。如果应用被强制退出时通知中心有推送通知,它们将从设备中移除。重新打开应用会重新创建(恢复)这些通知。我们的 SDK 将自动将类别设置为”已恢复”,并使用以下设置来防止不必要的行为和潜在的客户挫折感,避免从您的应用收到多个带有声音和弹出窗口的通知。- 重要性: 低
- 声音: 关闭
- 振动: 关闭
- 徽章: 禁用
- 锁屏: 私密
如果您始终使用自定义类别发送推送通知,“杂项”渠道将不会出现在用户设备上。“已恢复”渠道将始终出现,以处理强制关闭后恢复的通知。
华为特定行为
在华为设备上,OneSignal 不会设置默认类别。如果您不包含类别,华为将默认应用高重要性。在 OneSignal 中创建 Android 通知类别
- 在 OneSignal 仪表板中转到设置 > 推送和应用内 > Android 通知渠道。
- 点击添加组来组织您的类别(例如”新闻更新”、“社交活动”)。
- 在组内点击添加渠道来创建新类别。

在 OneSignal 中在哪里添加 Android 类别
名称
用户可见。 保持清晰和描述性。描述
用户可见。 简要说明此类别将处理的通知类型。重要性
控制通知的可见性和干扰性:- 低: 静音,无警报
- 中: 无声音/振动,最小视觉干扰
- 高: 播放声音或振动,无屏幕弹窗
- 紧急: 播放声音并显示为浮动通知或横幅式通知
声音
- 关闭: 无声音
- 默认: 设备的默认通知铃声
- 自定义: 上传并引用自定义声音(无文件扩展名)。
示例:
alert_beep(不是alert_beep.wav) 请参阅 通知声音 获取设置说明。
振动
- 关闭: 无振动
- 默认: 使用设备的振动模式
- 自定义: 使用模式(以毫秒为单位)定义您自己的。
示例:
0, 300, 500, 300→ 等待 0ms,振动 300ms,暂停 500ms,振动 300ms。
LED 颜色
某些 Android 设备支持 LED 指示器:- 关闭: 无 LED
- 默认: 设备默认
- 自定义: ARGB 十六进制值(例如,
FF0000FF代表蓝色)
徽章
在应用图标上显示徽章计数:- 启用: 显示徽章
- 禁用: 不显示徽章
锁屏可见性
- 公开: 显示完整内容
- 私密: 仅显示应用名称,隐藏内容
- 秘密: 锁屏上不显示通知
创建类别后,您就可以在通知中使用它。
更新类别
设备收到来自某个类别的通知后,Android 会锁定该类别的行为。对重要性、声音、振动或其他设置的更改不会追溯应用。例如,如果您发送一个使用”高”重要性和声音的类别的推送通知,然后将重要性更改为”紧急”并使用不同的声音文件,则使用相同类别向同一设备发送的下一个推送通知将不会具有”紧急”重要性或新声音。 选项:- 更新行为: 创建新类别。
- 测试更改: 清除应用数据或卸载并重新安装应用。
- 渠道名称
- 渠道组名称
删除类别
要从用户设备中移除已删除的类别:- 从 OneSignal 仪表板中删除类别。
- 确保从通知中心清除所有通知。
- 让用户:
- 将应用放置在后台 60+ 秒
- 再次打开它(触发 SDK 同步)
将类别添加到通知
根据您创建 Android 类别的方式以及发送消息的方式,以下是您可以在推送通知中引用类别的方法。从 OneSignal 仪表板发送
- 在您的模板或推送消息编辑器中,导航到 Android 设置。
- 在类别下,如果在 OneSignal 仪表板中创建,请选择您的类别,或者如果在应用中以编程方式创建,请选择**(在应用中创建)**。
- 如果以编程方式创建,还要将现有渠道字段设置为代码中定义的名称。

在消息编辑器中选择 Android 类别的位置
使用 REST API 发送
如果您在 OneSignal 仪表板中创建了类别,请在 创建消息 API 请求中使用android_channel_id。您可以在 Android 类别设置屏幕中找到渠道 ID。

在 Android 类别设置屏幕中查找渠道 ID
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 设置。
- 确保 OneSignal 在
仍需帮助?我们随时为您提供协助!请发送电子邮件至
support@onesignal.com,并提供上述信息,包括:- 如果在应用中以编程方式创建,请提供 Android 类别代码
- 您的 OneSignal 仪表板中出现问题的消息的 URL