1

firebase コンソールから単一の Android デバイスに firebase プッシュ通知を送信します。これは、アプリがフォアグラウンドで実行されているときにうまく機能します。イベントを受け取り、onMessageReceived() が呼び出されます。アプリがバックグラウンドにあるとき、エミュレーターのシステム通知トレイに通知エントリが表示されることを期待しています。代わりに、以下のエラーが発生し、デバイスに通知がポップアップしません。私のメッセージは、メッセージ テキストと FCM トークンだけの非常にシンプルなものです。

更新: 実際のデバイスで動作しているため、エミュレーターの問題のようです。

com.google.android.gms.persistent D/GCM: ott.a (SourceFile:49473) の java.lang.reflect.Method.invoke(Native Method) で、Doze java.lang.reflect.InvocationTargetException で目覚めるためのアプリのホワイトリスト登録エラーott.c(ソースファイル:1366) otn.b(ソースファイル:638) ahge.a(ソースファイル:998) ahgf.run(ソースファイル:1070) java.lang.Thread.run(Thread.java:818) で 原因: java.lang.SecurityException: android.os.Parcel.readException(Parcel.java:1599) のホワイトリストに呼び出し元のアプリがありません。 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) at ott.a(SourceFile:49473) at ott.c(SourceFile:1366) at otn.b(SourceFile:638) java.lang.Thread.run(Thread.java:818) で ahgf.run(SourceFile:1070) で ahge.a(ソースファイル:998)266) java.lang.reflect.Method.invoke(ネイティブメソッド) ott.a(ソースファイル:49473) ott.c(ソースファイル:1366) otn.b(ソースファイル:638) ahge.a(ソースファイル: 998) ahgf.run(SourceFile:1070) で java.lang.Thread.run(Thread.java:818) で266) java.lang.reflect.Method.invoke(ネイティブメソッド) ott.a(ソースファイル:49473) ott.c(ソースファイル:1366) otn.b(ソースファイル:638) ahge.a(ソースファイル: 998) ahgf.run(SourceFile:1070) で java.lang.Thread.run(Thread.java:818) でott.a(ソースファイル:49473)でのinvoke(ネイティブメソッド) ott.c(ソースファイル:1366)で otn.b(ソースファイル:638)で ahge.a(ソースファイル:998)で ahgf.run(ソースファイル:1070)でjava.lang.Thread.run(Thread.java:818) でott.a(ソースファイル:49473)でのinvoke(ネイティブメソッド) ott.c(ソースファイル:1366)で otn.b(ソースファイル:638)で ahge.a(ソースファイル:998)で ahgf.run(ソースファイル:1070)でjava.lang.Thread.run(Thread.java:818) で1366) at otn.b(SourceFile:638) at ahge.a(SourceFile:998) at ahgf.run(SourceFile:1070) at java.lang.Thread.run(Thread.java:818)1366) at otn.b(SourceFile:638) at ahge.a(SourceFile:998) at ahgf.run(SourceFile:1070) at java.lang.Thread.run(Thread.java:818)ジャワ:818)ジャワ:818) 

4

1 に答える 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"
  }
}

「priority」キーの値が「high」であることを確認してください。これによりデバイスが起動し、gcm メッセージが即座に配信され、クラッシュすることはありません。

詳細については、こちらを ご覧ください https://developer.android.com/training/monitoring-device-state/doze-standby.html#whitelisting-cases

于 2016-06-30T13:05:42.190 に答える