我们正在尝试为adf mobile实施推送通知。 我们按照以下两个博客进行了实施 http://deepakcs.blogspot.in/2013/06/adf-mobile-push-notifications-with.html
对于服务器端,我们提到了此处提供的信息 http://javapapers.com/android/google-cloud-messaging-gcm-for-android-and-push-notifications/
我们在收到GCM的通知消息时遇到问题。当我们从我们的提供者应用程序发送通知时,我们会收到带有警报声音和客户端应用程序名称的通知,但消息将显示为空白或无效。
我们的onMessage()方法(这是当推送通知到达客户端应用程序时将调用的方法如下)
public void onMessage(Event event) {
//Parsing the payload JSON string
JSONBeanSerializationHelper jsonHelper = new JSONBeanSerializationHelper();
try {
PayloadServiceResponse serviceResponse =
(PayloadServiceResponse)jsonHelper.fromJSON(PayloadServiceResponse.class, event.getPayload());
Map session = (Map)AdfmfJavaUtilities.evaluateELExpression("#{applicationScope}");
String newMsg = serviceResponse.getCustomMessage();
session.put("pNewMessage", newMsg);
} catch (Exception e) {
e.printStackTrace();
}
我们正在尝试将收到的消息存储在应用程序范围中,以便在用户点击通知后显示在我们的UI页面中(当用户点击通知消息时,它将带他到此页面并需要显示通知消息) 但有些我们如何收到空白信息。只要我们从提供者方发送通知,就会发出通知警报声和客户端应用名称。
任何人都可以对此提出建议吗?
谢谢。答案 0 :(得分:0)
我在使用GCM时遇到了同样的问题。已收到通知,但某些设备的消息为空白。
我可以通过在NotificationCompat.Builder
上添加以下内容来修复它:
.setContentTitle(appName)
.setContentText(message)
这是最终代码:
NotificationCompat.Builder nBuilder;
nBuilder = new NotificationCompat.Builder(context)
.setDefaults(Notification.DEFAULT_ALL)
.setSmallIcon(smallIcon)
.setWhen(System.currentTimeMillis())
.setAutoCancel(true)
.setContentTitle(appName)
.setContentText(message)
.setTicker(message)
.setVibrate(new long[] { 100, 250, 100, 250, 100, 250 })
.setSound(alarmSound)
.setPriority(Notification.PRIORITY_MAX);