首页 文章

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

提问于
浏览
1

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

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

com.google.android.gms.persistent D / GCM:错误白名单应用程序,用于在ott.a的java.lang.reflect.Method.invoke(本机方法)中的doze java.lang.reflect.InvocationTargetException中唤醒(SourceFile:49473) ot.c.(SourceFile:666)at otn.b(SourceFile:638)at ahge.a(SourceFile:998)at ahgf.run(SourceFile:1070)at java.lang.Thread.run(Thread.java: 818)引起:java.lang.SecurityException:调用应用程序不在android.os.Parcel.readException(Parcel.java:1599)的android.os.Parcel.readException(Parcel.java:1599)的白名单中 . app.usage.IUsageStatsManager $ Stub $ Proxy.whitelistAppTemporarily(IUsageStatsManager.java:293)at android.app.usage.UsageStatsManager.whitelistAppTemporarily(UsageStatsManager.java:266)at java.lang.reflect.Method.invoke(Native Method)at at ott.a(SourceFile:49473)at ot.c.(SourceFile:1366)at otn.b(SourceFile:638)at ahge.a(SourceFile:998)at ahgf.run(SourceFile:1070)at java.lang.Thread .RUN(Thread.java:818)

1 回答

  • 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

相关问题