2017-06-25 12 views
1

私は運がないとこれを研究するのに数時間を費やしたので、私はここで尋ねている。 Iすでに無駄にこれらの質問をチェックしました:今日まではgetIntent()。getExtras()がnullを返すFCM

(私の知る限り - 私はしばらくそれをテストしていない)、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を使用しているからです(ファイナライズされているはずですが)。

+0

FWIW - API 24デバイスで11.0.1を使用している場合に動作します –

+0

@BobSnyderは私が完全なderpであり、Google Playサービスが必要な可能性がありますか? – TheWanderer

+1

はい、私はそれについて考えていました。間違いなく必要。エミュレータを使用している場合は、API 26用のGPSが含まれている画像はまだリリースされていません。数日前にリリースされたより低いAPI用に更新されました。 –

答えて

2

ない答えが、私はコメントを共有するにはあまりにも多くを持っている...

あなたはAPI 26エミュレータ上で実行されているように聞こえます。以前のコメントで述べたように、Firebase 11.0.1と互換性のあるAPI 26エミュレータのイメージはまだリリースされていません。私はAPI 26エミュレータ上で実行すると、バージョンの相反が、このログメッセージで確認された。それにもかかわらず

W/GooglePlayServicesUtil: Google Play services out of date. Requires 11011000 but found 10930470 

、(データ値なしで)Firebaseコンソールから送られた通知が表示され、触れたとき、私のランチャーを起動しますアクティビティ。その活動のonCreate()方法では、私はこのコードを持っている:

Intent intent = getIntent(); 
    if (intent != null) { 
     Bundle b = intent.getExtras(); 
     if (b != null) { 
      Set<String> keys = b.keySet(); 
      for (String key : keys) { 
       Log.d(TAG, "Bundle Contains: key=" + key); 
      } 
     } else { 
      Log.w(TAG, "onCreate: BUNDLE is null"); 
     } 
    } else { 
     Log.w(TAG, "onCreate: INTENT is null"); 
    } 

この出力を生成する:

D/MainActivity: Bundle Contains: key=google.sent_time 
D/MainActivity: Bundle Contains: key=from 
D/MainActivity: Bundle Contains: key=google.message_id 
D/MainActivity: Bundle Contains: key=collapse_key 

だから、Google Playのサービスが問題であることについての私の以前のコメントが間違っていました。あなたが観察している行動は、他の何かによって引き起こされます。

+0

Hmm。また、物理的なAPI 25タブレットでは失敗します。私はちょうど待たなければならないと思う。これは私にとっては十分な答えです。 – TheWanderer

関連する問題