android 通知 优先级,Firebase云消息传递+ Android:无声通知的优先级

作者探讨了在使用Firebase Cloud Messaging (FCM)向Android设备发送实时消息时遇到的10秒到5分钟延迟问题,重点在于设置高优先级但效果不明显。文章分析了可能的原因,如FCM对无声且无需用户交互的消息可能降低优先级,并提供了优化建议和代码示例。
摘要由CSDN通过智能技术生成

TLDR:通过FCM发送到Android设备的消息需要10秒到5分钟才能发送.可能是由于优先权.我把它设置为"高",但似乎它不会保持这个价值.

我为iOS和Android开发了一个应用程序.我的后端运行在Django上.对于我们的实时通信,我们最近开始使用Firebase云消息传递(FCM).

我成功地设法连接Django服务器,并能够向这两种设备发送消息.

这是我构建消息的python代码.请注意,令牌数据会在以后动态添加,并且消息是静默通知.

def _build_silent_message(not_id, data):

"""Construct silent notifiation message.

Silent means that this message won't show up in the notifications hub

of the app.

"""

return {

'message': {

'data': {"data": data},

'apns': {

'payload': {

"notId": not_id, # notId HAS TO BE FIRST!!!

'aps': {

'content-available': 1

}

},

'headers': {

'apns-priority': '10'

},

},

'android': {

'priority': "high",

'data': {

"androidData": data,

'content-available': '1'

}

}

}

}

如您所见,我将Apple和Android优先级设置为"高"(/ 10).在iOS上,所有消息都会立即传递.然而,在Android上并非如此.消息最多需要5分钟才能到达手机.我认为这可能是一个优先问题,因为文件说明:

高度优先.FCM尝试立即传递高优先级消息,允许FCM服务在必要时唤醒休眠设备并运行一些有限的处理(包括非常有限的网络访问).

到现在为止还挺好.我将优先级设置为高.但文件进一步指出:

高优先级消息通常会导致用户与您的应用互动.如果FCM检测到他们没有的模式,则可能会对您的消息进行去优先级排序.

我发送到设备的所有消息都需要与手机进行交互.但我所有的消息都是无声的消息.也许FCM认为我的消息不需要用户交互,因此优先级较低.

有谁知道如何解决这个问题?

编辑:我测试了Android三星Galaxy S7和谷歌Pixel 2.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值