设备处于睡眠模式时不会出现 Android GCM 通知

Posted

技术标签:

【中文标题】设备处于睡眠模式时不会出现 Android GCM 通知【英文标题】:Android GCM notification don't appear when device is in sleep mode 【发布时间】:2015-01-15 09:34:15 【问题描述】:

我使用 GCM 推送通知开发了一个 android 应用程序。我已经开始使用google的示例。推送通知在设备“开启”时起作用。当设备进入睡眠状态时,通知不会出现,但当我让 android 设备退出睡眠模式时它们会显示。

我看到当我在 Facebook 或 Snapchat 上发布内容时,通知在睡眠模式下完美运行,所以我的问题是:当我收到推送通知并且设备处于睡眠模式时,如何显示此通知 ?

**

编辑

我在服务器端解决了我的问题。 我忘记在消息参数中将属性“delay_with_idle”设置为 false。

有关更多信息,请参阅以下文档:

Urbanair Ship GCM Server

**

【问题讨论】:

你读过关于这个developer.android.com/google/gcm/client.html的消息主题 是的,我已经阅读了该主题,并且我还测试了 Google 的示例代码。 很高兴您找到了解决方案。您可能需要考虑将其发布为该问题的实际答案并将其标记为正确答案。这也供其他开发者参考。 【参考方案1】:

我在服务器端解决了我的问题。我忘记在消息参数中将属性“delay_with_idle”设置为 false。

有关更多信息,请参阅以下文档:

Urbanair Ship GCM Server

【讨论】:

【参考方案2】:

您指的是哪种通知?声音通知?状态栏中的图标?

如果您打算执行的操作与上述类似,您可能需要在 GCMIntentService 类的 sendNotification() 方法中添加自定义代码(如 setSound())。 Here是demo中类的实现。

【讨论】:

在生成将要显示的通知之前,我指的是 GCM 收到的推送通知。当我的设备处于睡眠模式时,我的 WakefulBroadcastReceiver 不会收到通知,但只有在设备处于唤醒状态时才会收到通知。

以上是关于设备处于睡眠模式时不会出现 Android GCM 通知的主要内容,如果未能解决你的问题,请参考以下文章

如何在设备处于睡眠模式时的某个特定时间在 android 中推送本地通知

Android GCM 不向设备发送通知消息

Android 在设备处于睡眠状态时获取 GPS 坐标更新(屏幕已关闭)

您能否以编程方式检查以确定您的 android 设备是不是处于深度睡眠模式?

具有高优先级的 Firebase 消息不会从 Doze android 6+ 唤醒设备

设备处于睡眠模式时的 URLConnection 不起作用