我从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)
答案 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