Quickblox - GCM,被发送到所有设备?

时间:2015-01-22 08:39:17

标签: android quickblox

在Quickblox GCM中,当我尝试通过推送向某个用户ID发送消息时,我也会在发送者的设备上收到通知。我不确定为什么,它是开发模式的常态吗?

QBEvent event = new QBEvent();
            event.setUserId(sendToUserId);
            event.setType(QBEventType.ONE_SHOT);
            event.setEnvironment(QBEnvironment.DEVELOPMENT);
            event.setNotificationType(QBNotificationType.PUSH);
            event.setPushType(QBPushType.GCM);
            HashMap<String, String> data = new HashMap<String, String>();
            data.put("data.message", "Message from John");
            data.put("data.type", "Notify");
            data.put("ParentId",dialogId.toString());
            event.setMessage(data);

QBMessages.createEvent(event, new QBEntityCallbackImpl<QBEvent>() {
                @Override
                public void onSuccess(QBEvent qbEvent, Bundle args) {
                    System.out.println("GCM Message Sent inside event " );
                }

                @Override
                public void onError(List<String> errors) {
                    System.out.println("GCM Message ERROR inside event ");
                }
            });

以上代码确实发送了GCM,但是发送给两个设备。 sendToUserId以及发件人的设备。

我做错了吗?

1 个答案:

答案 0 :(得分:1)

实际上,您不需要设置 user_id 字段 - 它来自服务器的响应并包含发件人的ID

查看推送代码示例http://quickblox.com/developers/SimpleSample-messages_users-android#Send_Push_Notifications_from_Application

// recipients
StringifyArrayList<Integer> userIds = new StringifyArrayList<Integer>();
userIds.add(53779);
userIds.add(960);

QBEvent event = new QBEvent();
event.setUserIds(userIds);

因此,它应该是 userIds ,而不是userId