quickblox,如何在聊天中检索自定义参数?

时间:2014-02-08 10:21:55

标签: android chat quickblox

我正在使用quickblox api开发一个Android应用程序。我正在使用聊天SMACK功能(1对1聊天),我尝试从聊天中接收消息。我可以检索消息文本,但我无法获取海关参数。

这是一个关于我的消息变量的屏幕:

enter image description here

我需要的值是存储在'map'中的值:tempo,telefono,stato,nome,prefisso ..我怎么能检索到它?我只是尝试搜索quickblox文档,但在尝试实现DefaultPacketExtension时出现api错误。

谢谢

1 个答案:

答案 0 :(得分:1)

以下是使用QuickBlox Android SDK 1.1

的示例

使用其他参数发送消息:

Map<String, Object> addinfoParams = new HashMap<String, Object>();
addinfoParams.put(Consts.AGE, 22);
addinfoParams.put(Consts.TYPE, "actor");

final String BODY = "Hey QuickBlox!";

Message message = createMsgWithAdditionalInfo(USER_ID, BODY, addinfoParams);

Log.i(TAG, "message: " + message.toXML());
try {
    qbPrivateChat.sendMessage(USER_ID, message);
} catch (XMPPException e) {
    e.printStackTrace();
}

...

private Message createMsgWithAdditionalInfo(int userId, String body,  Map<?, ?> addinfoParams){
        Message message = new Message(QBChatUtils.getChatLoginFull(userId), Message.Type.chat);
        String addInfo = ToStringHelper.toString(addinfoParams, "", Consts.ESCAPED_AMPERSAND);
        MessageExtension messageExtension = new MessageExtension(Consts.QB_INFO, "");
        try {
            messageExtension.setValue(Consts.ADDITIONAL_INFO, addInfo);
        } catch (BaseServiceException e) {
            e.printStackTrace();
        }
        message.addExtension(messageExtension);
        message.setBody(body);
        return message;
}

接收消息并获取自定义参数:

chatMessageListener = new ChatMessageListener() {
            @Override
            public void processMessage(Message message) {
                String from = message.getFrom();
                String messageBody = message.getBody();

                List<MessageExtension> messageExtensions = message.getExtensions();

            }

            @Override
            public boolean accept(Message.Type type) {
                switch (type) {
                    case normal:
                    case chat:
                    case groupchat:
                        return true;
                    default:
                        return false;
                }
            }
        };

聊天片段https://github.com/QuickBlox/quickblox-android-sdk/blob/master/snippets/src/com/quickblox/snippets/modules/SnippetsChat.java

中的详细信息