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。谢谢,请把它作为答案,然后我会接受它。