在XMPP客户端中更改外向节。

| 我正在使用Smack API for Java连接到ejabberd和gtalk服务器。我可以正常连接并登录,但是我想进行1次较小的修改。 如何更改已登录用户的状态节? 例如,给定节:
<presence to=\"someone@someServer.com/androidd5a3arer3\"
      from=\"me@someServer.com/Smack\">
  <status></status>
  <priority>24</priority>
  <show>away</show>
  <c xmlns=\"http://jabber.org/protocol/caps\"></c>
  <x xmlns=\"vcard-temp:x:update\">
    <photo>asefe3a33e</photo>
  </x>
</presence>
我想在将数据包发送给其他人之前添加一个新的字段,例如:
<presence to=\"someone@someServer.com/androidd5a3arer3\"
      from=\"me@someServer.com/Smack\">
  <status></status>
  <priority>24</priority>
  <show>away</show>
  <c xmlns=\"http://jabber.org/protocol/caps\"></c>
  <x xmlns=\"vcard-temp:x:update\">
    <photo>asefe3a33e</photo>
  </x>
<NEW_FIELD> NEW STUFF HERE </NEW_FIELD>
</presence>
任何帮助,将不胜感激。     
已邀请:
        在XMPPConnection上调用addPacketInterceptor:
connection.addPacketInterceptor(new PacketInterceptor() {
        public void interceptPacket(Packet packet) {
            // modify packet
        }
    }, new PacketTypeFilter(Presence.class));
addPacketInterceptor的文档说:   用此连接注册一个数据包拦截器。每当此连接即将发送数据包时,将调用拦截器。拦截器可以修改要发送的数据包。数据包过滤器确定哪些数据包将传递到拦截器。     

要回复问题请先登录注册