Asmack android:创建自定义数据包并注册扩展

时间:2013-11-22 00:05:04

标签: android xmpp asmack

我正在使用Asmack库在Android应用程序上使用XMPP,服务器发送自定义Stanza

<notification xmlns="jabber:client" from="admin@api.pp.gs" to="1eef368606cb459b847809a0430bfa1f@api.pp.gs/iMac-de-Thomas" id="1457247499">
<body>lol</body>
</notification>

我希望能够收听这些数据包,我尝试使用PacketExtensionProvider但没有成功。这是我收听数据包的代码:

xmppConnection.addPacketListener(new PacketListener()
{
    @Override
    public void processPacket(Packet packet)
    {
        Log.i("K:", "cool " + packet.getClass().toString());
    }
}, new MyPaquetFilter());

MyPaquetFilter返回的地方总是为了测试目的。

我应该如何使用 PacketManager PacketExtension 来获取自定义广告?

1 个答案:

答案 0 :(得分:0)

为了能够接收自定义数据包,您需要首先创建Provider, either an IQProvider or an PacketExtensionProvider,然后使用ProviderManager注册该提供程序,以便在接收数据包时考虑进行解析。

您没有向我们展示您的自定义PacketExtensionProvider,也没有向您展示如何使用ProviderManager注册它。而且就绝对精确而言,如果您使用PacketExtensionProvider,则需要将自定义扩展名notification包装在message元素中。