应用程序处于后台时,Firebase推送通知未显示(模拟器)

时间:2016-06-30 13:01:08

标签: android firebase-notifications

我从firebase控制台向一个单独的Android设备发送firebase推送通知。当应用程序在前台运行时,这很有效。我收到事件并调用onMessageReceived()。 当应用程序在后台时,我希望看到一个通知条目显示在模拟器的系统通知栏中。相反,我收到以下错误,并且设备上没有弹出通知。我的消息非常简单,只有消息文本和FCM令牌。

更新: 它似乎是一个模拟器问题,因为在真实的设备上它正在工作。

  

com.google.android.gms.persistent D / GCM:错误白名单应用程序在打瞌睡中醒来                                                                         java.lang.reflect.InvocationTargetException                                                                             at java.lang.reflect.Method.invoke(Native Method)                                                                             在ott.a(SourceFile:49473)                                                                             在ott.c(SourceFile:1366)                                                                             在otn.b(SourceFile:638)                                                                             at ahge.a(SourceFile:998)                                                                             在ahgf.run(SourceFile:1070)                                                                             在java.lang.Thread.run(Thread.java:818)                                                                          引起:java.lang.SecurityException:调用应用程序不在白名单中                                                                             在android.os.Parcel.readException(Parcel.java:1599)                                                                             在android.os.Parcel.readException(Parcel.java:1552)                                                                             在android.app.usage.IUsageStatsManager $ Stub $ Proxy.whitelistAppTemporarily(IUsageStatsManager.java:293)                                                                             在android.app.usage.UsageStatsManager.whitelistAppTemporarily(UsageStatsManager.java:266)                                                                             at java.lang.reflect.Method.invoke(Native Method)                                                                             在ott.a(SourceFile:49473)                                                                             在ott.c(SourceFile:1366)                                                                             在otn.b(SourceFile:638)                                                                             at ahge.a(SourceFile:998)                                                                             在ahgf.run(SourceFile:1070)                                                                             在java.lang.Thread.run(Thread.java:818)

1 个答案:

答案 0 :(得分:2)

应使用GCM高优先级消息唤醒应用并访问网络。 高优先级GCM消息的示例: -

{
  "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
  "priority" : "high",
   "notification" : {
    "body" : "This week’s edition is now available.",
    "title" : "NewsMagazine.com",
    "icon" : "new",
  },
  "data" : {
    "volume" : "3.21.15",
    "contents" : "http://www.news-magazine.com/world-week/21659772"
  }
}

看到“优先级”键的值为“高”,这将唤醒设备,gcm消息将立即发送,不会崩溃。

查看此信息以获取更多信息 https://developer.android.com/training/monitoring-device-state/doze-standby.html#whitelisting-cases