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

Quickblox - GCM, is sent to all devices?

在 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 以及发送者的设备。

我做错了什么吗?

实际上您不需要设置 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