在aSmack中启用XEP-0198

时间:2014-04-22 12:12:55

标签: android xmpp smack asmack

我目前正在对启用了XEP-0198的XMPP服务器使用asmack。

我试图从asmack库启用此功能,但我找不到有关如何执行此操作的任何信息,因此关注http://xmpp.org/extensions/xep-0198.html我知道我必须通过发送启用此功能:

<enable xmlns='urn:xmpp:sm:3'/>

但我不知道如何做到这一点,因为这不是一节。任何帮助表示赞赏。

编辑: 正如dant3指出的那样,Smack不支持XEP-0198,但是我仍然希望通过Smack发送简单的XML来启用它,我只是不知道如何做到这一点。

2 个答案:

答案 0 :(得分:0)

看起来像是do not have XEP-0198 implementation。所以,你无法启用它。

如果你为smack贡献它会很好(因此 - 对于asmack)。

修改

Smack 4.1.0现在支持XEP-0198流管理。有关详细信息,请参阅此wiki page

答案 1 :(得分:-1)

我通过创建自己的包类型来解决它:

public class MyPacket extends Packet
{
    private String content = "";

    public MyPacket(String content)
    {
        this.content = content;
    }
    @Override
    public String toXML()
    {
        return this.content;
    }
}

我在构造函数中传递xml然后关闭它:

MyPacket p = new MyPacket("<enable xmlns='urn:xmpp:sm:3'/>");
this.connection.sendPacket(p);

绝对不是世界上最好的代码,但它有效。