1

からブール値を取得することはできません。Androidは、私がこのバンドルデータを取得しています私のGcmListenerServiceでバンドル

Bundle[{gcm.notification.e=1, gcm.notification.title=SomeApp, proceed=true, gcm.notification.body=Some text, message=Some message, collapse_key=example.com.SomeApp}] 

私は

bundle.getString("message"); 

によってメッセージを得ることができますが、私はを進めることができませんブール値intバンドルデータ。 私が使用:

bundle.getBoolean("proceed",false); 

これは常に値がバンドルデータでであっても、偽与えています。 それはとても簡単です、私は何が欠けているのか分かりません。おかげさまで proceedの値が、それはおそらくStringとしてBundleに格納されbooleanであることを見て、あなたはそれがbundle.getBoolean()を使用しての値を得ることができない理由があるにもかかわらず

+1

'bundle.getString(" proceed ");'を使って、 'String'として格納されているかどうか確認しましたか? –

+0

いいえ、私はデフォルト値を持っているので、私はgetBooleanを使用しました。私はgetStringでチェックし、ヌル値をチェックしなければならないと思います。提案に感謝します。 – ArJ

+0

誤って送信されました。 – ArJ

答えて

2

代わりにbundle.getString("proceed");を使用してください。

Stringを必要に応じてbooleanに解析することができます。

boolean proceed = Boolean.parseBoolean(bundle.getString("proceed", "false")); 
+0

ありがとう、それは今働いています。しかし、私はPHPでgcmサーバにブール値として送信していました。だから私はそれが真実であると思った。 – ArJ

+2

私はそこに混乱を見ることができます。私はドキュメントのどこかで、すべての値が文字列として送られているが、あまり見つからなかったかどうかを調べてみました。 'onMessageReceived'は' Bundle'が '文字列のキーと値のペアとしてのメッセージデータ'であると言います。キーと値の両方に常に 'String'を意味するかどうかは不明です。 –

関連する問題