1

我们正在尝试为 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 的通知消息时遇到问题。当我们从提供程序应用程序发送通知时,我们会收到带有警报声音和客户端应用程序名称的通知,但消息为空白或 null 。

我们的 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 页面中(当用户点击通知消息时,它会将他带到此页面并需要显示通知消息)但是有些方法我们收到空白消息。每当我们从提供商端发送通知时,只会出现通知警报声音和客户端应用程序名称。

有人可以对此提出建议吗?

谢谢你。

4

1 回答 1

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);
于 2015-03-16T17:04:40.187 回答