私は運がないとこれを研究するのに数時間を費やしたので、私はここで尋ねている。 Iすでに無駄にこれらの質問をチェックしました:今日まではgetIntent()。getExtras()がnullを返すFCM
- How to get data sent from server using fcm if app is in background?
- Push notification not working with FCM
- Google FCM getIntent not returning expected data when app is in background state
(私の知る限り - 私はしばらくそれをテストしていない)、Firebaseクラウドメッセージングはうまく動いていました。私はFirebase Consoleからのデータで通知を送信することができ、getIntent().getExtras()
を使用すると、アプリからそのデータにアクセスすることができます。
今日、私はテスト通知を送信しましたが、それをタップしても期待される動作が実行されませんでした。いくつかの掘削の後、私はgetIntent().getExtras()
がちょうど戻ってnull
を返すことが分かった。私はのIntent.getExtras()
外をログに記録しようとした場合
private void respondToNotificationClick() {
if (getIntent().getExtras() != null) {
Log.e("NOTIF", "NOTIF");
//...
}
}
(このメソッドは、主な活動の両方のonCreate()
とonResume()
から呼び出されます。)
しかし、そのログが印刷されることはありません、と:これは、関連するコードですif
ステートメント、NPEを取得します。
Firebase 11 vs 10と何か関係があると思われますが、このアプリはAPI 26をターゲットにしている可能性がありますが、修正方法を見つけることができず、Googleのドキュメントが常に最も役立つとは限りません。
ここでは何が起こっていますか?それは既知の問題ですか?それはベータ版のAPIを使用しているからです(ファイナライズされているはずですが)。
FWIW - API 24デバイスで11.0.1を使用している場合に動作します –
@BobSnyderは私が完全なderpであり、Google Playサービスが必要な可能性がありますか? – TheWanderer
はい、私はそれについて考えていました。間違いなく必要。エミュレータを使用している場合は、API 26用のGPSが含まれている画像はまだリリースされていません。数日前にリリースされたより低いAPI用に更新されました。 –