如何从Message中提取数据并在Notification(Android)中显示

时间:2013-09-23 12:07:30

标签: notifications push-notification google-cloud-messaging android-notifications

我使用GCM(谷歌云消息)进行推送通知。

当设备上的通知到达时它看起来像这样:

Received: Bundle[{message=hello, android.support.content.wakelockid=2,
collapse_key=do_not_collapse, from=243316392621}]

现在我想以通知时只显示消息的方式提取消息和wakelockId。(在这个例子中只有你好)

这里我的notificationBuider如下:

  NotificationCompat.Builder mBuilder =
            new NotificationCompat.Builder(this)
    .setSmallIcon(com.example.example.R.drawable.icon)
    .setContentTitle("Example")
    .setDefaults(Notification.DEFAULT_ALL)     
    .setAutoCancel(true)
    .setStyle(new NotificationCompat.BigTextStyle()
    .bigText(msg))
    .setContentText(msg);

    mBuilder.setContentIntent(contentIntent);
    mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());

请指导我。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

根据您收到的通知,我假设msg的类型为Bundle,其值为intent.getExtras(),其中intentintent GCM BroadcastReceiver。

您应该从中提取相关参数:

 String text = msg.getString ("message");
 NotificationCompat.Builder mBuilder =
            new NotificationCompat.Builder(this)
    .setSmallIcon(com.example.example.R.drawable.icon)
    .setContentTitle("Example")
    .setDefaults(Notification.DEFAULT_ALL)     
    .setAutoCancel(true)
    .setStyle(new NotificationCompat.BigTextStyle()
    .bigText(text))
    .setContentText(text);

 mBuilder.setContentIntent(contentIntent);
 mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());

答案 1 :(得分:0)

Recibido:Bundle [{mensaje = hola,android.support.content.wakelockid = 2, collapse_key = do_not_collapse,desde = 243316392621}]

通过这种方式谷歌发送你在你的应用服务器中定义的数据,你必须做的就是单独读取这些数据

extras.getString(" message")

其中message是已定义服务器应用程序密钥值的数据