0

私は次のコードを持っています:

@Override
    protected void onMessage(Context context, Intent intent) {
        Log.i(TAG, "Received message");
        Bundle extras = intent.getExtras();
        Log.i(TAG, "===> " + extras.toString());
        if (extras != null) {
            String message = (String) extras.get("mainKey");
            // notifies user
            Log.i(TAG, message);
        }
    }

サーバーからメッセージを取得できますが、extras.get("mainKey");null を返すため問題があると思います (と思います)。Logcat はこのログを示します:

05-07 16:01:53.666: I/GCMIntentService(10959): Received message
05-07 16:01:53.671: I/GCMIntentService(10959): ===> Bundle[{title=Hesam has sent you a message., collapse_key=do_not_collapse, conversation_id=90, msg_id=456, user_id=22, from=1014390164590, type=message}]
05-07 16:01:53.671: V/GCMBaseIntentService(10959): Releasing wakelock
05-07 16:01:53.676: W/dalvikvm(10959): threadid=33: thread exiting with uncaught exception (group=0x40c571f8)
05-07 16:01:53.686: E/AndroidRuntime(10959): FATAL EXCEPTION: IntentService[GCMIntentService-1014390164590-1]
05-07 16:01:53.686: E/AndroidRuntime(10959): java.lang.NullPointerException: println needs a message
05-07 16:01:53.686: E/AndroidRuntime(10959):    at android.util.Log.println_native(Native Method)
05-07 16:01:53.686: E/AndroidRuntime(10959):    at android.util.Log.i(Log.java:190)
05-07 16:01:53.686: E/AndroidRuntime(10959):    at com.belldigital.utility.Log.i(Log.java:16)
05-07 16:01:53.686: E/AndroidRuntime(10959):    at com.belldigital.fancied.GCMIntentService.onMessage(GCMIntentService.java:71)
05-07 16:01:53.686: E/AndroidRuntime(10959):    at com.google.android.gcm.GCMBaseIntentService.onHandleIntent(GCMBaseIntentService.java:223)
05-07 16:01:53.686: E/AndroidRuntime(10959):    at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
05-07 16:01:53.686: E/AndroidRuntime(10959):    at android.os.Handler.dispatchMessage(Handler.java:99)
05-07 16:01:53.686: E/AndroidRuntime(10959):    at android.os.Looper.loop(Looper.java:137)
05-07 16:01:53.686: E/AndroidRuntime(10959):    at android.os.HandlerThread.run(HandlerThread.java:60)

サーバーから送信したものを見ることができますが、extras.get("mainKey");何も返されません。以前にこの問題に直面したことのある人はいますか? 任意の提案をいただければ幸いです。ありがとう。

4

1 に答える 1

0

使用する intent.getExtras().getString("mainKey");

また、あなたの使用を確認してください

 $message= array("mainKey" => $message);

それをフィールドのデータとして渡します

$fields = array(
 'registration_ids' => $registation_ids,
 'data' => $message,
);

サーバーからメッセージを送信中

于 2013-05-07T10:51:58.217 に答える