我遇到了创建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。
任何帮助将不胜感激。
答案 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());