Android 安卓,如何获取通知信息?

Android 安卓,如何获取通知信息?,android,push-notification,google-cloud-messaging,Android,Push Notification,Google Cloud Messaging,我有以下代码: @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) {

我有以下代码:

@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(“主键”)
有问题,因为它返回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(“主键”)不返回任何内容。
以前有人遇到过这个问题吗?
如有任何建议,将不胜感激。谢谢。

使用
intent.getExtras().getString(“主键”)

还要确保你的

 $message= array("mainKey" => $message);
然后将其作为字段中的数据传递

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

从服务器发送消息时

如果您看到在附加服务之前打印的日志!=空检查,它显示意图中的条目。此外,该行应位于空指针检查之后。您是否在gcm广播中发送了“主键”值?嗨,Ashwini,谢谢您的评论。我没有在广播中设置“主键”。我希望GCM应该引入它。虽然我使用的是这个库的最后一次更新,但我担心这个词在那里的定义有所不同。可能吗?您收到的意向书中的“主键”在哪里,上面打印为Bundle==>“”。这就是为什么你不能用extras.get(“主键”)获取它。当你试图首先检查密钥中的数据时,请记住一件事,即它是否真的是contains/has接收到的消息的一部分。这正是我的答案,@AndroidNewwbie。谢谢,请把它作为答案,然后我会接受它。