如何在JSON中配置FCM消息优先级?及锁屏即时投递带通知音设置
FCM枚举字段配置与锁屏即时投递设置
一、枚举字段的JSON配置规则
1. message.android.priority
- 类型:字符串
- 有效值:小写的
"normal"(默认)或"high",也支持大写的"NORMAL"/"HIGH",FCM API会自动识别,大小写不影响生效 - 作用:控制消息的投递优先级,
"high"会让消息绕过设备的省电限制,优先投递
2. message.android.notification.notification_priority
- 类型:字符串或整数均可
- 有效值:
- 字符串:
"PRIORITY_MIN"、"PRIORITY_LOW"、"PRIORITY_DEFAULT"、"PRIORITY_HIGH"、"PRIORITY_MAX"(必须严格匹配大小写) - 对应整数:
-2、-1、0、1、2
- 字符串:
- 作用:控制通知在系统状态栏的显示优先级,数值/级别越高,通知越醒目
二、锁屏即时投递+带声音通知的配置方案
要实现屏幕关闭时立即投递并触发带声音的通知,需要同时调整以下配置:
- 将
android.priority设为"high":确保消息绕过设备休眠限制,即时投递 - 将
android.notification.notification_priority设为"PRIORITY_HIGH"(或1):提升通知的系统显示优先级,锁屏时也能弹出 - 保留
sound: "default"(或自定义音效文件名):确保通知触发系统默认声音 - 可选添加
visibility: "public":确保锁屏时通知内容完全显示(如果不需要隐藏内容的话)
调整后的代码示例
# Construct the message payload message = { 'message': { 'token': app_token, 'android': { 'priority': 'high', # 确保消息即时投递 'notification': { 'title': msg_title, 'body' : msg_body, 'icon' : 'ic_app_mono', 'color': '#FF0000', 'sound': 'default', # 触发默认通知声音 'notification_priority': 'PRIORITY_HIGH', # 提升通知显示优先级 'visibility': 'public' # 可选:锁屏时显示完整通知内容 } } } } # Use ADC to get the credentials credentials = default()[0] # Send the message result = SendMessage(credentials, message)
补充说明
- 如果你的消息是数据消息(仅包含
data字段,无notification字段),还需要添加android.content_available: true,确保设备休眠时唤醒应用处理消息 - 部分厂商的定制ROM(如小米、华为)有额外的省电策略,可能需要用户在系统设置中允许你的应用“后台弹出界面”“不受电池优化限制”才能确保100%即时投递
内容的提问来源于stack exchange,提问作者Marus Gradinaru
相关产品推荐
相关产品推荐

