GCM通知显示JSON消息

时间:2014-08-20 11:08:18

标签: java android json notifications google-cloud-messaging

我遇到了创建GCM通知的问题。默认情况下,它以JSON格式显示消息。

我想要包装我的JSON并且只想显示一些消息,让我们在通知中说“你有新消息”,但当任何用户点击通知时,其他信息JSON等应该可供客户端应用程序使用。

用Java构建GCM服务器应用程序并在tomcat上运行。

我遵循官方GCM网站教程及其演示客户端/服务器应用程序。

[更新]:

Sender sender = new Sender(Constants.SENDER_ID);            
androidTargets.add(MY_DEVICE_ID);

Message message = new Message.Builder()
            .collapseKey("GCM_Message")
            .timeToLive(30)
            .delayWhileIdle(true)
            .addData("message", msg)
            .build();          

MulticastResult result = sender.send(message, androidTargets, 3);

System.out.println("GCM message sent");
if (result.getResults() != null) {
    int canonicalRegId = result.getCanonicalIds();
    if (canonicalRegId != 0) {  

    }
} else {
    int error = result.getFailure();
    System.out.println("Broadcast failure: " + error);
}

而'message'是json string。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

将您的主题字符串传递给setContentTitle(subject), 您可以查看此代码段,它可能会对您有所帮助。

NotificationManager notificationManager = (NotificationManager) parametes.context
                .getSystemService(Context.NOTIFICATION_SERVICE);

        Intent intent = null;
        intent = new Intent(parametes.context, MainActivity.class);

        PendingIntent contentIntent = PendingIntent.getActivity(
                parametes.context, 0, intent, 0);

        NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
                parametes.context)
                .setSmallIcon(R.drawable.app_icon)
                .setContentTitle("My Subject Line here.")
                .setAutoCancel(true);


        mBuilder.setContentIntent(contentIntent);
        parametes.mNotificationManager.notify(
                CheckInboxWithCountParams.NOTIFICATION_ID,
                mBuilder.getNotification());