zoukankan      html  css  js  c++  java
  • xmpp vcard添加 自定义字段 发送与解析读取

    1.   Vcard的数据发送和解析获取

    1. 发送数据

              在org.jivesoftware.smackx.packet.VCard 中构建 字段

              以desc为例

              public String desc;                           //好友签名

              public String getDesc() {

                  return otherSimpleFields.get("DESC");

              }

             public void setDesc(String desc) {

                otherSimpleFields.put("DESC", desc);

            }

           在otherSimpleFields 添加名为” otherSimpleFields”节点

          程序 会将 otherSimpleFields集合中字段生成xmpp协议xml

        调用VCard的save方法即可以保存个人信息

          2.解析获取数据

             收到服务器返回的数据后 会调用packetReader解析数据

            解析数据的工具类org.jivesoftware.smack.util.PacketParserUtils 在类中分别有解析message、iq、presence等数据的解析方法

            Vcard属于iq 在parseIQ中处理

            parseIQ 方法中调用IQProvider parse解析数据

           具体执行在继承了IQProvider的类 org.jivesoftware.smackx.provider.vCardProvider中createVCardFromXML中将xml解析成vcard的

           为了让createVCardFromXML 中 new VCardReader(vCard, document).initializeFields();

           为了让VCardReader能识别读取增加的”DESC”字段,需要在initializeFields方法中设置

           vCard.setDesc(getTagContents("DESC")) ;

     

            这样vcard就可以读取和解析自定义的字段了

  • 相关阅读:
    HDU 5213 分块 容斥
    HDU 2298 三分
    HDU 5144 三分
    HDU 5145 分块 莫队
    HDU 3938 并查集
    HDU 3926 并查集 图同构简单判断 STL
    POJ 2431 优先队列
    HDU 1811 拓扑排序 并查集
    HDU 2685 GCD推导
    HDU 4496 并查集 逆向思维
  • 原文地址:https://www.cnblogs.com/John5/p/3022958.html
Copyright © 2011-2022 走看看