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
// recipients
StringifyArrayList<Integer> userIds = new StringifyArrayList<Integer>();
userIds.add(53779);
userIds.add(960);
QBEvent event = new QBEvent();
event.setUserIds(userIds);
所以,应该是userIds,而不是userId
在 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
// recipients
StringifyArrayList<Integer> userIds = new StringifyArrayList<Integer>();
userIds.add(53779);
userIds.add(960);
QBEvent event = new QBEvent();
event.setUserIds(userIds);
所以,应该是userIds,而不是userId